This repository is a Swift Package for distributing releases of Mozilla's various Rust-based application components. It provides the Swift source code packaged in a format understood by the Swift package manager, and depends on a pre-compiled binary release of the underlying Rust code published from [mozilla/application-services](https://raw.github.com/mozilla/rust-components-swift/main/ https://github.com/mozilla/application-service).
This repository is mostly updated by automation, all the logic is copied from [mozilla/application-services](https://raw.github.com/mozilla/rust-components-swift/main/ https://github.com/mozilla/application-service)
application-servicesrepo publishes two binary artifacts
FocusRustComponents.xcframework.zipcontaining the Rust code and FFI definitions for all components, compiled together into a single library.
Package.swiftfile refrences the xcframeworks as Swift binary targets.
Package.swiftfile defines a library per target (one for all the components used by
firefox-iosand one for
firefox-iosfiles are in the
FocusRustComponentWrapperwraps the Focus xcframework.
For more information, please consult:
ios-rustcrate which is currently responsible for publishing the pre-built
FocusRustComponents.xcframework.zipbundles on which this repository depends.
Nightly releases are automated and run every night as a cron job that pushes directly to the main branch. Nightly releases are tagged with three components (i.e
X.0.Y) where the first component is the current Firefox release (i.e
117, etc) and the last component is a timestamp.
Note that we need three components because that's a Swift Package manager requirement.
To cut a release of
rust-components-swift, you will need to do the following:
./automation/update-from-application-services.py <X.Y>, where
X.Yis the version of application services.
X.Yis the version of application services
To enable local development of
rust-component-swift read the instructions documented in application services
Check out the instructions in the docs in
application-services for adding a new component and publishing it for iOS. The docs are also published for convenience in https://mozilla.github.io/application-services/book/index.html.
Please open a ticket in https://github.com/mozilla/application-services/issues for any rust-component-swift related issues.
|Last commit: Yesterday|
See https://github.com/mozilla/application-services for changelog