Firefox Application Services
Перейти к файлу
Edouard Oger 70b5bd29f2
Check for macOS system headers installation
2019-05-22 17:45:58 -04:00
.circleci Update to Xcode 10.2.1, Swift 4.2 (from 4.0). () 2019-05-06 11:13:18 -04:00
.github Actually lint/format the bulk of our swift code () 2019-04-30 18:33:33 -07:00
automation chore(ci): Send notification email when a release publishing task fails. 2019-05-21 10:05:01 +10:00
build-scripts Assign default empty values for unbound variables 2019-04-26 11:58:47 -04:00
buildSrc Lift libsRoot into extension 2019-04-23 10:03:48 -04:00
components Fix integration tests, use the ref browser client 2019-05-22 14:03:19 -04:00
docs chore(ci): Send notification email when a release publishing task fails. 2019-05-21 10:05:01 +10:00
gradle/wrapper Pre: Update to Gradle 4.10.2 to work around a publishing issue. 2018-11-15 11:20:46 -08:00
gradle-plugin Publish on Maven via beetmover 2019-04-24 15:31:20 -04:00
libs Check for macOS system headers installation 2019-05-22 17:45:58 -04:00
megazords Run SwiftLint/SwiftFormat on CI 2019-04-24 21:23:15 -04:00
testing Fix integration tests, use the ref browser client 2019-05-22 14:03:19 -04:00
tools feat(scripts): Generate summary of shared-vs-platform-specific code. 2019-04-17 14:24:20 +10:00
website website: add links to new blog posts and limit posts to 8 2019-04-17 11:00:42 -04:00
xcconfig Update to Xcode 10.2.1, Swift 4.2 (from 4.0). () 2019-05-06 11:13:18 -04:00
.buildconfig-android.yml Cut release 0.28.1 2019-05-21 12:37:59 -07:00
.detekt.yml Disable detekt lints `TooManyFunctions` and `MagicNumber`. 2019-04-22 10:54:07 -07:00
.gitignore Run iOS tests on CI 2019-04-24 21:23:15 -04:00
.swiftlint.yml Actually lint/format the bulk of our swift code () 2019-04-30 18:33:33 -07:00
.taskcluster.yml Publish on Maven via beetmover 2019-04-24 15:31:20 -04:00
CHANGELOG.md Cut release 0.28.1 2019-05-21 12:37:59 -07:00
CHANGES_UNRELEASED.md Add API for fetching the most recently bookmarked items. Fixes 2019-05-21 15:07:33 -07:00
CODE_OF_CONDUCT.md Bring CPG in line with CPGBot's demands, fixes 2019-03-31 15:38:31 -07:00
COPYRIGHT Remove rc_crypto 2019-05-03 10:46:30 -04:00
Cargo.lock Revert "Bump android_logger from 0.7.0 to 0.8.3" 2019-05-17 19:34:15 -04:00
Cargo.toml Remove rc_crypto 2019-05-03 10:46:30 -04:00
Cartfile Use protobuf for fxa_profile return value 2019-02-12 19:09:45 -05:00
Cartfile.resolved Generate NSS/NSPR types from headers 2019-04-16 13:14:10 -04:00
LICENSE-MPL Change rc_crypto license to ISC, to comply with () 2019-04-26 10:52:45 -07:00
README.md Fix the link to the megazord documentation 2019-04-02 18:26:04 +02:00
build-carthage.sh Use sccache on CircleCI 2019-04-26 11:41:46 -04:00
build.gradle Publish on Maven via beetmover 2019-04-24 15:31:20 -04:00
clippy.toml Document our use of clippy and add a (empty) clippy.toml 2019-03-20 09:02:54 -07:00
gradle.properties NSS crypto backend for SHA-256 digest 2019-04-11 17:33:03 -04:00
gradlew [automation/fxa client] Part 1a: Lift Gradle multi-project to top-level. 2018-09-19 11:09:48 -07:00
gradlew.bat [automation/fxa client] Part 1a: Lift Gradle multi-project to top-level. 2018-09-19 11:09:48 -07:00
proguard-rules-consumer-jna.pro Set consumer Proguard rules. 2018-11-27 20:29:10 -08:00
publish.gradle fix(build): Set ANDROID_NDK_HOME so that gradle can strip native libs. 2019-05-15 11:45:31 +10:00
run-ios-tests.sh Run iOS tests on CI 2019-04-24 21:23:15 -04:00
settings.gradle Per-module Taskcluster tasks 2019-03-20 15:11:07 -04:00

README.md

Firefox Application Services

A platform for building cloud-powered applications that target Firefox users

What's this all about?

This repository hosts the code and docs needed to integrate with the products offered by the Firefox Application Services team.

If you're interested in getting involved in the development of those products then you're in the right place! Please review the more detailed guide on how to contribute to this project as well as the Community Participation Guidelines.

If that's not why you're here, then instead you might enjoy:

Overview

This repository is used to build client-side libraries for integrating with Firefox Application services such as Firefox Accounts, Firefox Sync and Push. Each of these is called a "component" and is built using a core of shared code writen in Rust, wrapped with native language bindings for different platforms.

The end result is an application that can be assembled from re-usable components that are largely shared across platforms, like this:

component diagram

The code for these components is organized as follows:

For more details on how the client libraries are built and published, please see the Guide to Building a Rust Component.

This repository also hosts the website source for the Application Services Product Portal, which provides consumer-facing documentation on how to integrate with various Application services products.

The ./docs/ directory holds intenal documentation about working with the code in this repository, and is most likely only of interest to contributors.

Components

The currently-available Rust Components in this repo are:

  • fxa-client - for applications that need to sign in with FxA, access encryption keys for sync, and more.
  • sync15 - shared library for accessing data in Firefox Sync
  • logins - for storage and syncing of a user's saved login credentials
  • places - for storage and syncing of a user's saved browsing history
  • push - for applications to receive real-time updates via WebPush
  • rc_log - for connecting component log output to the application's log stream
  • support - low-level utility libraries
    • support/ffi - utilities for building a component's FFI bindings
    • support/sql - utilities for storing data locally with SQL