Confirmed users
523
edits
Nnethercote (talk | contribs) (→FAQ) |
No edit summary |
||
(12 intermediate revisions by 3 users not shown) | |||
Line 77: | Line 77: | ||
* [[Rust_Update_Policy_for_Firefox|Rust Update Policy for Firefox]] | * [[Rust_Update_Policy_for_Firefox|Rust Update Policy for Firefox]] | ||
Rust in Firefox docs | |||
* [https://firefox-source-docs.mozilla.org/build/buildsystem/rust.html Adding Rust code] | |||
* [https://firefox-source-docs.mozilla.org/build/buildsystem/rust.html | * [https://firefox-source-docs.mozilla.org/writing-rust-code/index.html Writing Rust code] | ||
* [https://docs. | * [https://firefox-source-docs.mozilla.org/testing-rust-code/index.html Testing & debugging Rust code] | ||
* [https:// | |||
Getting help | Getting extra help | ||
* The Rust channel on [https://wiki.mozilla.org/Matrix Mozilla's Matrix network] contains lots of people who know about both Rust and Gecko. | * The Rust channel on [https://wiki.mozilla.org/Matrix Mozilla's Matrix network] contains lots of people who know about both Rust and Gecko. | ||
* Are you new to Rust and not sure if your Rust code could be improved? The following people can review Rust patches for Firefox from an "is this good Rust code?" point of view. | * Are you new to Rust and not sure if your Rust code could be improved? The following people can review Rust patches for Firefox from an "is this good Rust code?" point of view. | ||
Line 93: | Line 91: | ||
** Nika Layzell (:nika) | ** Nika Layzell (:nika) | ||
** Cameron McCormack (:heycam) | ** Cameron McCormack (:heycam) | ||
= Rust Components = | = Rust Components = | ||
Line 118: | Line 110: | ||
* U2F HID backend: {{bug|1388843}} (shipped in Firefox 57) | * U2F HID backend: {{bug|1388843}} (shipped in Firefox 57) | ||
* libcubeb Audio backend for Linux (PulseAudio): {{bug|1346665}} (shipped in Firefox 59) | * libcubeb Audio backend for Linux (PulseAudio): {{bug|1346665}} (shipped in Firefox 59) | ||
* libcubeb Audio backend for macOS (CoreAudio): {{bug|1530713}} (shipped in Firefox 74) | |||
** '''Why Rust?''' Safer implementation avoids data racing by leveraging lifetime, variable mutability check and better mutex pattern. | |||
* XPIDL binding generator ({{bug|1293362}}) (shipped in Firefox 60) | * XPIDL binding generator ({{bug|1293362}}) (shipped in Firefox 60) | ||
* New prefs parser: {{bug|1423840}} (shipped in Firefox 60) | * New prefs parser: {{bug|1423840}} (shipped in Firefox 60) | ||
Line 148: | Line 142: | ||
* Integrate [https://github.com/projectfluent/fluent-rs fluent-rs], a localization system: {{bug|1560038}} (shipped in Firefox 76) | * Integrate [https://github.com/projectfluent/fluent-rs fluent-rs], a localization system: {{bug|1560038}} (shipped in Firefox 76) | ||
** '''Why Rust?''' Performance and memory wins are substantial over previous JS implementation. It brings zero-copy parsing, and memory savvy resolving of localization strings. It also paves the way for migrating the rest of the Fluent APIs away from JS which is required for Fission. | ** '''Why Rust?''' Performance and memory wins are substantial over previous JS implementation. It brings zero-copy parsing, and memory savvy resolving of localization strings. It also paves the way for migrating the rest of the Fluent APIs away from JS which is required for Fission. | ||
* qcms [https://searchfox.org/mozilla-central/source/gfx/qcms] ported from C to Rust | |||
** '''Why Rust?''' Memory safety | |||
=== In progress === | === In progress === | ||
Line 163: | Line 159: | ||
* Linebreaking with xi-unicode: {{bug|1290022}} (last update late 2016) | * Linebreaking with xi-unicode: {{bug|1290022}} (last update late 2016) | ||
* Background Update Agent for Windows: {{bug|1343669}} | * Background Update Agent for Windows: {{bug|1343669}} | ||
* [https://github.com/gfx-rs/wgpu wgpu], a [https://gpuweb.github.io/gpuweb/ WebGPU] API implementation: {{bug|webgpu-mvp}} (in Nightly since 72) | * [https://github.com/gfx-rs/wgpu wgpu], a [https://gpuweb.github.io/gpuweb/ WebGPU] API implementation: {{bug|webgpu-mvp}} (in Nightly since 72) | ||
** '''Why Rust?''' Complex tracking logic, wide attack area. Also, leverages Rust ecosystem for building libraries on top of our native implementation and the API that will target the Web. | ** '''Why Rust?''' Complex tracking logic, wide attack area. Also, leverages Rust ecosystem for building libraries on top of our native implementation and the API that will target the Web. | ||
Line 224: | Line 219: | ||
This section lists areas where Rust integration could be improved. | This section lists areas where Rust integration could be improved. | ||
* Tracking bug: Make the developer experience for Firefox + Rust great: {{Bug|rust-great}} | * Tracking bug: Make the developer experience for Firefox + Rust great: {{Bug|rust-great}} | ||
* | * [https://docs.google.com/document/d/16FgQPRxNb-Z6sfJy_P7edXzMVWE86jJEZVbmV0oC-m0/ 2020 Questionnaire results] | ||
* [https://docs.google.com/document/d/1puZvhWaURtViz8OC0HkB0h2dqJThVyAgLGFbIQpd4fo/ Oxidation 2020 Plan] | |||
= Meetings = | = Meetings = |