In order to facilitate more modern development practices within Thunderbird, we should enable Rust for development of both libraries and `xpcom` crates. In order to land this work, we require upstream support by way of elimination of RustLibrary() limits (Bug 1860246). At minimum, we must provide: - A custom cargo workspace within `comm-central` that obeys the `mozilla-central-workspace-hack` requirements, to eliminate unnecessary rebuilds and ensure proper dependency management - Support for Rust xpcom components in Thunderbird - Build integrations to trivially extend our own equivalent of `gkrust` with new crates + xpcom components - Simple management of the Cargo.toml - such that we can safely reuse mozilla-central crates / xpcom without requiring upstream changes to the lock file - Easy rebase of the toml file (python script) - Ease of development experience with Thunderbirtod+Rust to lower the complexity and cost of feature delivery while leveraging memory safety + other desirable oxide traits
Bug 1860654 Comment 0 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
In order to facilitate more modern development practices within Thunderbird, we should enable Rust for development of both libraries and `xpcom` crates. In order to land this work, we require upstream support by way of elimination of RustLibrary() limits (Bug 1860246). At minimum, we must provide: - A custom cargo workspace within `comm-central` that obeys the `mozilla-central-workspace-hack` requirements, to eliminate unnecessary rebuilds and ensure proper dependency management - Support for Rust xpcom components in Thunderbird - Build integrations to trivially extend our own equivalent of `gkrust` with new crates + xpcom components - Simple management of the Cargo.toml - such that we can safely reuse mozilla-central crates / xpcom without requiring upstream changes to the lock file - Easy rebase of the toml file (python script) - Ease of development experience with Thunderbird+Rust to lower the complexity and cost of feature delivery while leveraging memory safety + other desirable oxide traits