Firefox Application Services
Перейти к файлу
Thom Chiovoloni 9f6fcedc85
Initial implementation of the Kotlin Sync Manager API
2019-09-16 15:06:33 -07:00
.circleci ci: Add a non-blocking rust changelog job 2019-09-11 18:27:32 -04:00
.github Specify which changelog file to edit in the PR template 2019-07-18 18:24:36 -04:00
.vscode Add rust support 2019-05-30 11:48:42 -04:00
automation Use released versions of NSS/NSPR 2019-08-30 14:00:50 -04:00
build-scripts Use vendored OpenSSL with reqwest 2019-08-14 14:29:19 -04:00
components Initial implementation of the Kotlin Sync Manager API 2019-09-16 15:06:33 -07:00
docs Merge pull request #1609 from hoosteeno/metrics_docs_misspelling 2019-08-14 20:15:45 -04:00
gradle/wrapper Add gradle zip SHA256 sum 2019-08-06 17:55:48 -04:00
libs Merge pull request #1697 from mozilla/dash-v 2019-08-30 14:51:56 -04:00
megazords Initial implementation of the Kotlin Sync Manager API 2019-09-16 15:06:33 -07:00
testing Bump structopt from 0.2.18 to 0.3.0 2019-09-03 15:15:58 +00:00
tools Explain why we are closing bugzilla mirrored issues. 2019-08-22 16:31:35 -07:00
website
xcconfig Update to Xcode 10.2.1, Swift 4.2 (from 4.0). (#1088) 2019-05-06 11:13:18 -04:00
.buildconfig-android.yml Initial implementation of the Kotlin Sync Manager API 2019-09-16 15:06:33 -07:00
.detekt.yml
.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 (#1093) 2019-04-30 18:33:33 -07:00
.taskcluster.yml Ensure dependabot can run TC graphs 2019-07-29 13:38:19 -04:00
CHANGELOG.md Cut release 0.38.2 2019-09-04 11:13:25 -04:00
CHANGES_UNRELEASED.md Add ability to attach a session token from the OAuth code flow 2019-09-16 15:17:03 -04:00
CODE_OF_CONDUCT.md
COPYRIGHT rc_crypto initial commit (#1349) 2019-07-09 14:00:48 -04:00
Cargo.lock Initial implementation of the Kotlin Sync Manager API 2019-09-16 15:06:33 -07:00
Cargo.toml Initial implementation of the Kotlin Sync Manager API 2019-09-16 15:06:33 -07:00
Cartfile
Cartfile.resolved
DEPENDENCIES.md Run dependency script 2019-08-20 10:32:19 -07:00
LICENSE rc_crypto initial commit (#1349) 2019-07-09 14:00:48 -04:00
README.md Use vendored OpenSSL with reqwest 2019-08-14 14:29:19 -04:00
build-carthage.sh Include license info in binary distributions. 2019-08-02 07:41:18 +10:00
build.gradle Bump rust-android-gradle to 0.8.2 [ci full] 2019-09-05 15:07:43 -07:00
clippy.toml
gradle.properties Delete now-unused nativelibs plugin 2019-06-12 14:29:31 -07:00
gradlew
gradlew.bat Upgrade gradle wrapper 2019-08-06 13:35:56 -07:00
proguard-rules-consumer-jna.pro
publish.gradle Ensure the right packaging values are set in our pom files 2019-08-09 14:27:12 -07:00
run-ios-tests.sh Update run-ios-tests.sh 2019-09-04 10:38:16 -04:00
settings.gradle Merge branch 'master' into omegazord 2019-07-09 17:10:18 -07: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 are 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