{"id":13405817,"url":"https://github.com/mozilla/application-services","last_synced_at":"2025-10-20T03:14:49.649Z","repository":{"id":37334009,"uuid":"129966583","full_name":"mozilla/application-services","owner":"mozilla","description":"Firefox Application Services","archived":false,"fork":false,"pushed_at":"2025-05-06T16:52:02.000Z","size":61448,"stargazers_count":635,"open_issues_count":17,"forks_count":239,"subscribers_count":48,"default_branch":"main","last_synced_at":"2025-05-06T17:41:01.335Z","etag":null,"topics":["firefox","fxa","push","sync"],"latest_commit_sha":null,"homepage":"https://mozilla.github.io/application-services/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozilla.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-04-17T21:20:37.000Z","updated_at":"2025-05-06T16:42:21.000Z","dependencies_parsed_at":"2023-10-12T03:20:49.488Z","dependency_job_id":"8d9e32c1-3f44-4291-bdbb-c508dcf4dee0","html_url":"https://github.com/mozilla/application-services","commit_stats":{"total_commits":4806,"total_committers":151,"mean_commits":"31.827814569536425","dds":0.8570536828963795,"last_synced_commit":"c965aabb6d2eb60af88ab6c6a5eb9a029ae9530a"},"previous_names":[],"tags_count":331,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fapplication-services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fapplication-services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fapplication-services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fapplication-services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozilla","download_url":"https://codeload.github.com/mozilla/application-services/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253806481,"owners_count":21967177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firefox","fxa","push","sync"],"created_at":"2024-07-30T19:02:12.748Z","updated_at":"2025-10-20T03:14:49.644Z","avatar_url":"https://github.com/mozilla.png","language":"Rust","readme":"# Firefox Application Services\n\nApplication 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.\n\n### Contributing\nTo contribute, please review the Mozilla [Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/) and then visit our [how to contribute](docs/contributing.md) guide.\n\n### Contact\nGet in touch with other community members on Matrix, or through issues here on GitHub.\n- Matrix: [#rust-components:mozilla.org](https://chat.mozilla.org/#/room/#rust-components:mozilla.org) ([How to connect](https://wiki.mozilla.org/Matrix#Connect_to_Matrix))\n\n# Documentation\n\n### High-level docs\n\nThe [Application Services Book](https://mozilla.github.io/application-services/book/index.html) contains high-level documentation about the code in this repository.  It's built from the [./docs/](docs) directory.\n\n### Package docs\n\nWe 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](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:\n\n```shell\ncargo doc --no-deps --document-private-items --open\n```\n\n# Building\n\n### Building the Rust Components\n1. Clone or Download the repository:\n```shell\n  $ git clone https://github.com/mozilla/application-services # (or use the ssh link)\n  $ cd application-services\n  $ git submodule init\n  $ git submodule update --recursive\n  ```\n2. Follow these instructions to install your [system-level dependencies](docs/building.md#building-application-services)\n3. Run the a-s Rust unit tests\n```shell\ncargo test\n```\n\n### Consumer build, integration and testing\nThe 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.  \n\n#### Android integration builds and helpful tools\n* Build instructions to test [Fenix / android-components integration](docs/building.md#building-for-fenix)\n* [Fenix Auto-publication workflow for android-components and application-services](https://github.com/mozilla-mobile/fenix/#auto-publication-workflow-for-android-components-and-application-services)\n\n\n#### Firefox for iOS integration\n* Build instructions to test [Firefox iOS integration](docs/building.md#building-for-firefox-ios)\n\n#### Firefox Desktop\n* Build instructions to test [Firefox Desktop integration](docs/building.md#building-for-firefox-desktop)\n\n# Rust Components\n\n[./components/](components) contains the source for each component. Note that most components have their FFI generated\nby the [uniffi](https://github.com/mozilla/uniffi-rs/) library.\n* See [./components/places/](components/places) for an example, where you can\n    find:\n  * The shared [rust code](components/places/src).\n  * The [Kotlin bindings](components/places/android) for use by Android\n      applications.\n  * The [Swift bindings](components/places/ios) for use by iOS applications.\n* See [./components/fxa-client](components/fxa-client) for an example that uses\n    [uniffi](https://github.com/mozilla/uniffi-rs/) to generate API wrappers for\n    multiple languages, such as Kotlin and Swift.\n\n### List of components\n\n* [ads-client](/components/ads-client) - for fetching ads via UAPI\n* [autofill](components/autofill) - for storage and syncing of credit card and\n  address information\n* [crashtest](components/crashtest) - testing-purposes (crashing the Rust code)\n* [fxa-client](components/fxa-client) - for applications that need to sign in\n  with FxA, access encryption keys for sync, and more.\n* [logins](components/logins) - for storage and syncing of a user's saved login\n  credentials\n* [nimbus](components/nimbus) - for integrating with Mozilla's [experimentation](https://mozilla.github.io/experimenter-docs/) platform for Firefox\n* [places](components/places) - for storage and syncing of a user's saved\n  browsing history\n* [push](components/push) - for applications to receive real-time updates via\n  WebPush\n* [remote-settings](components/remote-settings) - for integrating with [Remote Settings](https://remote-settings.readthedocs.io/)\n* [support](components/support) - low-level utility libraries\n  * [support/rc_crypto](components/rc_crypto) - handles cryptographic needs backed by Mozilla's\n    [NSS](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS) library\n  * [support/sql](components/support/sql) - utilities for storing data locally\n    with SQL\n* [sync15](components/sync15) - shared library for accessing data in Firefox\n  Sync\n* [sync_manager](components/sync_manager) - integrates multiple sync engines/\n  stores into a single framework\n* [tabs](components/tabs) - an in-memory syncing engine for remote browser tabs\n* [viaduct](components/viaduct) - an HTTP request library\n* [webext-storage](components/webext-storage) - powers an implementation of the\nchrome.storage.sync WebExtension API\n\nNote the above list is partial; see the actual list under the `components` directory.\n","funding_links":[],"categories":["Rust","firefox"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fapplication-services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozilla%2Fapplication-services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fapplication-services/lists"}