GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - mozilla/application-services: Firefox Application Services

BranchesTags
Open more actions menu

Latest commit

 

History

7,299 Commits
7,299 Commits

Folders and files

NameName
Last commit message
Last commit date
.cargo
.cargo
 
 
.circleci
.circleci
 
 
.github
.github
 
 
.vscode
.vscode
 
 
automation
automation
 
 
build-scripts
build-scripts
 
 
components
components
 
 
docs
docs
 
 
examples
examples
 
 
gradle
gradle
 
 
libs
libs
 
 
megazords
megazords
 
 
monorepo-hacks
monorepo-hacks
 
 
taskcluster
taskcluster
 
 
testing
testing
 
 
tools
tools
 
 
.buildconfig-android.yml
.buildconfig-android.yml
 
 
.cron.yml
.cron.yml
 
 
.detekt.yml
.detekt.yml
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
.mailmap
.mailmap
 
 
.mergify.yml
.mergify.yml
 
 
.taskcluster.yml
.taskcluster.yml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
COPYRIGHT
COPYRIGHT
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
DEPENDENCIES.md
DEPENDENCIES.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
build.gradle
build.gradle
 
 
clippy.toml
clippy.toml
 
 
detekt-baseline.xml
detekt-baseline.xml
 
 
gradle.properties
gradle.properties
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
install-nimbus-cli.sh
install-nimbus-cli.sh
 
 
license.template
license.template
 
 
proguard-rules-consumer-jna.pro
proguard-rules-consumer-jna.pro
 
 
publish.gradle
publish.gradle
 
 
rust-toolchain.toml
rust-toolchain.toml
 
 
settings.gradle
settings.gradle
 
 
version.txt
version.txt
 
 

Repository files navigation

Firefox Application Services

Application Services (a-s) is a collection of Rust Components that are used to enable Firefox applications to integrate with Firefox accounts, sync, experimentation, etc. Each component is built using a core of shared code written in Rust, wrapped with native language bindings for different platforms.

Contributing

To contribute, please review the Mozilla Community Participation Guidelines and then visit our how to contribute guide.

Contact

Get in touch with other community members on Matrix, or through issues here on GitHub.

  • Matrix: #rust-components:mozilla.org (How to connect)

Documentation

High-level docs

The Application Services Book contains high-level documentation about the code in this repository. It's built from the ./docs/ directory.

Package docs

We use rustdoc to document both the public API of the components and the various internal implementation details. View them on https://mozilla.github.io/application-services/book/rust-docs/fxa_client/index.html. Once you have completed the build steps, you can view the docs by running:

cargo doc --no-deps --document-private-items --open

Building

Building the Rust Components

  1. Clone or Download the repository:
  $ git clone https://github.com/mozilla/application-services # (or use the ssh link)
  $ cd application-services
  $ git submodule init
  $ git submodule update --recursive
  1. Follow these instructions to install your system-level dependencies
  2. Run the a-s Rust unit tests
cargo test

Consumer build, integration and testing

The application-services library primary consumers are Fenix (Firefox on Android) and Firefox iOS. Assure you are able to run integration tests (for Android and iOS if using MacOS) by following the instructions to build for Android and iOS integrations.

Android integration builds and helpful tools

  • Build instructions to test Fenix / android-components integration
  • Fenix Auto-publication workflow for android-components and application-services

Firefox for iOS integration

  • Build instructions to test Firefox iOS integration

Firefox Desktop

  • Build instructions to test Firefox Desktop integration

Rust Components

./components/ contains the source for each component. Note that most components have their FFI generated by the uniffi library.

  • See ./components/places/ for an example, where you can find:
    • The shared rust code.
    • The Kotlin bindings for use by Android applications.
    • The Swift bindings for use by iOS applications.
  • See ./components/fxa-client for an example that uses uniffi to generate API wrappers for multiple languages, such as Kotlin and Swift.

List of components

  • ads-client - for fetching ads via UAPI
  • autofill - for storage and syncing of credit card and address information
  • crashtest - testing-purposes (crashing the Rust code)
  • fxa-client - for applications that need to sign in with FxA, access encryption keys for sync, and more.
  • logins - for storage and syncing of a user's saved login credentials
  • nimbus - for integrating with Mozilla's experimentation platform for Firefox
  • places - for storage and syncing of a user's saved browsing history
  • push - for applications to receive real-time updates via WebPush
  • remote-settings - for integrating with Remote Settings
  • support - low-level utility libraries
    • support/rc_crypto - handles cryptographic needs backed by Mozilla's NSS library
    • support/sql - utilities for storing data locally with SQL
  • sync15 - shared library for accessing data in Firefox Sync
  • sync_manager - integrates multiple sync engines/ stores into a single framework
  • tabs - an in-memory syncing engine for remote browser tabs
  • viaduct - an HTTP request library
  • webext-storage - powers an implementation of the chrome.storage.sync WebExtension API

Note the above list is partial; see the actual list under the components directory.

About

Firefox Application Services

mozilla.github.io/application-services/

Topics

firefoxfxapushsync

Resources

Readme

Code of conduct

Code of conduct

Contributing

Contributing
Activity
Custom properties

Stars

678 stars

Watchers

39 watching

Forks

288 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.