17 个稳定版本 (5 个主要版本)
125.0.1 | 2024年3月28日 |
---|---|
123.0.1 | 2024年2月1日 |
122.0.2 | 2024年1月11日 |
120.0.2 | 2023年11月29日 |
96.4.0 | 2023年1月31日 |
#286 in 加密学
598 stars & 48 watchers
39KB
789 行
Firefox 应用服务
应用服务(a-s)是一组用于使 Firefox 应用程序能够集成 Firefox 账户、同步、实验等功能集的 Rust 组件。每个组件都使用用 Rust 编写的核心共享代码构建,并使用不同平台的本地语言绑定进行包装。
贡献
要贡献,请查阅 Mozilla 的 社区参与指南,然后访问我们的 如何贡献 指南。
联系
在 Matrix 或 GitHub 上的问题中与其他社区成员取得联系。
- Matrix: #rust-components:mozilla.org (如何连接)
文档
高级文档
《应用服务书籍》(Application Services Book)包含关于此存储库中代码的高级文档。它由./docs/目录构建。
包文档
我们使用rustdoc来文档化组件的公共API以及各种内部实现细节。您可以在https://mozilla.github.io/application-services/book/rust-docs/fxa_client/index.html上查看它们。完成构建步骤后,您可以通过运行以下命令来查看文档:
cargo doc --no-deps --document-private-items --open
构建
构建Rust组件
- 克隆或下载存储库
$ git clone https://github.com/mozilla/application-services # (or use the ssh link)
$ cd application-services
$ git submodule init
$ git submodule update --recursive
- 按照以下说明安装您的系统级依赖项
- 运行a-s Rust单元测试
cargo test
消费者构建、集成和测试
application-services库的主要消费者是Fenix(Android上的Firefox)和Firefox iOS。确保您能够通过遵循为Android和iOS集成构建的说明来运行集成测试(如果使用MacOS)。
Android集成构建和辅助工具
Firefox for iOS集成
- 构建说明以测试Firefox iOS集成
Firefox桌面版
- 构建说明以测试Firefox桌面版集成
Rust组件
./components/包含每个组件的源代码。请注意,大多数组件都由uniffi库生成其FFI。
- 请参阅./components/places/中的示例,您可以找到
- 请参阅./components/fxa-client中的示例,该示例使用uniffi为多种语言生成API包装器,例如Kotlin和Swift。
组件列表
- autofill - 用于存储和同步信用卡和地址信息
- crashtest - 测试目的(使Rust代码崩溃)
- fxa-client - 需要使用FxA登录、访问同步加密密钥等的应用程序
- logins - 用于存储和同步用户的保存登录凭据
- nimbus - 用于与Mozilla的实验平台集成Firefox
- places - 用于存储和同步用户的保存浏览历史记录
- push - 应用程序通过WebPush接收实时更新
- 支持 - 低级实用库
- 支持/rc_crypto - 处理Mozilla的NSS库支持的加密需求
- 支持/sql - 使用SQL存储数据的实用工具
- sync15 - 访问Firefox Sync中数据的共享库
- sync_manager - 将多个同步引擎/存储集成到单个框架中
- tabs - 用于远程浏览器标签的内存同步引擎
- viaduct - 一个HTTP请求库
- webext-storage - 为chrome.storage.sync WebExtension API的实现提供动力
注意上述列表不完整;请查看components
目录下的实际列表。
lib.rs
:
一个用于使用JSON对象签名和加密(JOSE)数据格式(如JWE和JWK)的库,如https://tools.ietf.org/html/rfc7518和相关标准中所述。加密由[rc_crypto]完成 - 此crate仅对此加密执行JOSE包装。因此,此处的大多数结构等支持通过serde以与rfc7518等兼容的方式对JSON进行序列化和反序列化。
依赖项
~1-2MB
~41K SLoC