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.
This Week in Rust is openly developed on GitHub. If you find any errors in this week's issue, please submit a PR.
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
bail!
andensure!
. - 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
check_access_permissions()
- MIR-borrowck: immutable unique closure upvars can be mutated
- disable jemalloc on executables for ios targets
- stabilize
spin_loop_hint
- add a specialization of read_exact for Cursor
- reject '2' as a binary digit in internals of b: number formatting
- remove
T: Sized
onptr::is_null()
- stabilize some
ascii_ctype
methods - add std::sync::mpsc::Receiver::recv_deadline()
- generic Associated Types Parsing & Name Resolution
impl From<bool> for AtomicBool
- implement
From<RecvError>
forTryRecvError
andRecvTimeoutError
- deprecate the Formatter::flags method
- introduce
LinkedList::drain_filter
- 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
New Contributors
- Christian Duerr
- Irina-Gabriela Popa
- Julian Kulesh
- Kenjiro Nakayama
- Kyle Huey
- Nikolay Merinov
Approved RFCs
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
Every week the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now. This week's FCPs are:
- [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.
New RFCs
- Closures capture disjoint fields.
- Bury
Error::description()
. - String reflection.
- Add a machine-readable JSON-output mode for Rust's libtest.
Upcoming Events
- 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.
If you are running a Rust event please add it to the calendar to get it mentioned here. Email the Rust Community Team for access.
Rust Jobs
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.