Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.
Updates from Rust Community
News & Blog Posts
- Rust Playground can now output in WebAssembly.
- Building and deploying a Rust library on Android.
- Building and deploying a Rust library on iOS.
- Boiling the ocean, incrementally - How Stylo brought Rust and Servo to Firefox.
- Mercurial's oxidation plan: Using Rust in Mercurial.
- Diesel: Schema in depth.
- The rise of Rust in Dev/Ops.
- What's a reference in Rust?
- Replacing Elasticsearch with Rust and SQLite.
- Rust comes to RISC-V.
- Rust on ARM Cortex-M microcontrollers.
- Writing a Brainfuck interpreter in Rust (and WebAssembly).
- Learning Rust: Modules, crates, workspaces, std modules, and preludes.
- Rocket - A Rust game running on WebAssembly.
- Failure 0.1.1 released: Now with
- Writing a turn-based strategy game in Rust: Progress report.
- The impl period newsletter #4.
- This week in Rust docs 84.
- [podcast] Rusty Spike Podcast - episode 10. Rust 1.22, RISC-V, impl newsletter #4, more WASM work, Fennec and Stylo, and Bobby Holley’s Stylo writeup.
Crate of the Week
This week is a bit sad for lack of a crate. Look, if you want a weekly crate, submit your suggestions and votes for next week!
Call for Participation
Always wanted to contribute to open-source projects but didn't know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
146 pull requests were merged in the last week
- allow nested groups in imports
- add an i128_lowering flag in TargetOptions
- implement the special repr(C)-non-clike-enum layout
- rustc: filter out bogus extern crate warnings
- rustc: prepare to enable ThinLTO by default
- incr.comp.: make traits::VTable encodable and decodable
- incr.comp.: remove ability to produce incr. comp. hashes during metadata export
- incr.comp.: remove an unnecessary HIR access which enables hashing spans for type definitions
- incr.comp.: load cached diagnostics lazily and allow more things in the cache
- incr.comp.: some preparatory work for caching more query results
- make coercions to
!in unreachable code a hard error
- stabilize const-calling existing const-fns in std
- remove semicolon note
- use suggestions instead of notes ref mismatches (for better tooling)
- avoid type-live-for-region obligations on dummy nodes
- suggest using slice when encountering
let _ = ""[..];
- add case insensitive comparison, besides Levenstein for DYM
- MIR: split Operand::Consume into Copy and Move
- MIR: Fix value moved diagnose messages
- MIR: Fix CopyPropagation regression (2)
- MIR borrowck: finalize
- MIR-borrowck: immutable unique closure upvars can be mutated
- disable jemalloc on executables for ios targets
- add a specialization of read_exact for Cursor
- reject '2' as a binary digit in internals of b: number formatting
- stabilize some
- add std::sync::mpsc::Receiver::recv_deadline()
- generic Associated Types Parsing & Name Resolution
impl From<bool> for AtomicBool
- deprecate the Formatter::flags method
- cargo: add a workspace.default-members config that overrides implied --all
- rustdoc: fix search results overlap
- rustdoc: fix deduplication of items
- rustdoc: hide private trait type params and show hidden items with document-private
- fix rustdoc item summaries that are headers
- rustdoc: fix global search
- Christian Duerr
- Irina-Gabriela Popa
- Julian Kulesh
- Kenjiro Nakayama
- Kyle Huey
- Nikolay Merinov
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
No RFCs were approved this week.
Final Comment Period
- [disposition: merge] Fallible collection allocation 1.0.
- [disposition: merge] Implicit caller location (third try to the unwrap/expect line info problem).
- [disposition: merge] Unsized rvalues.
- [disposition: merge] eRFC: Cargo build system integration.
- [disposition: merge] Type privacy and private-in-public lints.
- Closures capture disjoint fields.
- String reflection.
- Add a machine-readable JSON-output mode for Rust's libtest.
- Dec 9. Rust Bangalore "2-Day" Hackathon.
- Dec 11. Seattle Rust Meetup.
- Dec 13. Rust Amsterdam: Theme night on Procedural Macros & Custom Derive
- Dec 13. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Dec 13. Rust Documentation Team Meeting at #rust-docs on irc.mozilla.org.
- Dec 13. OpenTechSchool Berlin - Rust Hack and Learn.
- Dec 14. Rust release triage.
- Dec 14. Rust DC - Mid-month Rustful: Falcon.
- Dec 14. Columbus Rust Society - Monthly Meeting.
- Dec 20. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Dec 20. Rust Documentation Team Meeting at #rust-docs on irc.mozilla.org.
- Dec 21. Cambridge Rust Meetup #6.
No jobs listed for this week.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
No quote was selected for QotW.