Skip to content
Firefox Application Services
Branch: master
Clone or download
rfk Merge pull request #726 from mozilla/readme-diagram-with-google-docs;…
… r=vladikoff,bbangert

Use google docs for editing the component diagram in the README.
Latest commit d12b470 Mar 21, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Per-module Taskcluster tasks Mar 20, 2019
gradle/wrapper Pre: Update to Gradle 4.10.2 to work around a publishing issue. Nov 15, 2018
libs Generate and upload breakpad symbols for Android Mar 18, 2019
megazords Per-module Taskcluster tasks Mar 20, 2019
testing/sync-test Add #![allow(unknown_lints)] to all crates Mar 20, 2019
xcconfig Megazord for iOS Feb 14, 2019
.buildconfig-android.yml Cut release 0.21.0 (now with bookmarks) Mar 20, 2019
Cartfile Use protobuf for fxa_profile return value Feb 13, 2019
LICENSE [license] License application-services repository as MPL2. (Fixes #220)… Sep 12, 2018 Use google docs for editing the component diagram in the README. Mar 4, 2019 Fix up Carthage binary zip filename Mar 7, 2019
build.gradle Per-module Taskcluster tasks Mar 20, 2019
gradlew [automation/fxa client] Part 1a: Lift Gradle multi-project to top-level. Sep 19, 2018
settings.gradle Per-module Taskcluster tasks Mar 20, 2019

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:


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.


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
You can’t perform that action at this time.