Confirmed users
1,345
edits
(Add WebRTC-SDP details) |
Nnethercote (talk | contribs) |
||
Line 116: | Line 116: | ||
** '''Why Rust?''' Code taken from Servo, uses parallel algorithms. | ** '''Why Rust?''' Code taken from Servo, uses parallel algorithms. | ||
* 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) | |||
* 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 121: | Line 122: | ||
* Audio remoting for Linux: {{bug|1434156}} (shipped in Firefox 60) | * Audio remoting for Linux: {{bug|1434156}} (shipped in Firefox 60) | ||
* WebRender: {{bug|webrender}} (shipped in Firefox 67, enabled for users with appropriate hardware) | * WebRender: {{bug|webrender}} (shipped in Firefox 67, enabled for users with appropriate hardware) | ||
** '''Why Rust?''' Code taken from Servo, has high performance; Rust's memory and thread safety | ** '''Why Rust?''' Code taken from Servo, has high performance; Rust's memory and thread safety assist productivity, and allow more aggressive optimizations. | ||
* kvstore (key-value storage backed by LMDB): {{bug|1490496}} (shipped in Firefox 67) | * kvstore (key-value storage backed by LMDB): {{bug|1490496}} (shipped in Firefox 67) | ||
** '''Why Rust?''' The rkv crate provides a safe, ergonomic wrapper around LMDB, our choice for simple key-value storage in Firefox. kvstore wraps rkv in an asynchronous XPCOM API for JS and C++ callers. | ** '''Why Rust?''' The rkv crate provides a safe, ergonomic wrapper around LMDB, our choice for simple key-value storage in Firefox. kvstore wraps rkv in an asynchronous XPCOM API for JS and C++ callers. | ||
Line 131: | Line 132: | ||
* Japanese encoding detector: {{bug|1543077}} (shipped in Firefox 69) | * Japanese encoding detector: {{bug|1543077}} (shipped in Firefox 69) | ||
** '''Why Rust?''' Builds upon encoding_rs, has tiny FFI surface, subject matter prone to accesses past the bounds of a buffer. | ** '''Why Rust?''' Builds upon encoding_rs, has tiny FFI surface, subject matter prone to accesses past the bounds of a buffer. | ||
* [https://github.com/padenot/audio_thread_priority audio_thread_priority] {{bug|1429847}} (shipped in Firefox 69), allow promoting threads to a real-time scheduling class, on Windows/Linux/macOS. | |||
** '''Why Rust?''' This crate is being used by C++ code and by Rust code (audioipc), Rust is nicer to write than C++ (especially for what is essentially just a series of system calls, the error checking style is nice), and cbindgen made it trivial to expose a C ABI. | |||
* [https://github.com/mozilla/dogear/ Dogear] a bookmark merger for Sync. Shipped pref'd-off in {{bug|1482608}} (Firefox 68), enabled by default in {{bug|1588005}} (shipped in Firefox 72) | |||
** '''Why Rust?''' A single performant and safe implementation shared between desktop and the bookmarks engine in [https://github.com/mozilla/application-services/tree/master/components/places application-services] | |||
* Unicode Language Identifier: {{bug|1571915}} (shipped in Firefox 72) | * Unicode Language Identifier: {{bug|1571915}} (shipped in Firefox 72) | ||
** '''Why Rust?''' Much faster, parser-heavy, easier to handle low-memory footprint thanks to `tinystr`. | ** '''Why Rust?''' Much faster, parser-heavy, easier to handle low-memory footprint thanks to `tinystr`. | ||
Line 137: | Line 142: | ||
* Encoding detector: {{bug|1551276}} (shipped in Firefox 73) | * Encoding detector: {{bug|1551276}} (shipped in Firefox 73) | ||
** '''Why Rust?''' Builds upon encoding_rs, has tiny FFI surface, subject matter prone to accesses past the bounds of a buffer, potentially parallelizable with Rayon. | ** '''Why Rust?''' Builds upon encoding_rs, has tiny FFI surface, subject matter prone to accesses past the bounds of a buffer, potentially parallelizable with Rayon. | ||