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
- Cargo's next few years.
- The steps towards rustc, the great optimiser.
- Salsa: Incremental recompilation.
- Collection of Rust hacks.
- Writing Neovim plugins in Rust.
- osaka.rs - rust async without the noise.
- Rust on iOS (and Android).
- Rust: regretless concurrency.
- Learning Rust via Advent of Code.
- Creating web-server .deb binary with rust.
- An introduction to the Rust programming language for Node developers.
Crate of the 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.
- TiKV: Set compile-time env vars in build script instead of Makefile.
- TiKV: Build with dylibs instead of statically.
- rustc: Implement RFC 2091 re implicit caller information - make 'unwrap' report a useful line number.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
157 pull requests were merged in the last week
- HirIdification: add key HirId methods
- don't panic when accessing enum variant ctor using
- use LLVM intrinsics for saturating add/sub
- add MOVBE x86 CPU feature
- NVPTX target specification
- fix bug in integer range matching
- unused variable suggestions apply on all patterns
- add information to higher-ranked lifetimes conflicts error messages
- rustc: use multiple threads by default
- misc performance tweaks
iter::from_fnand remove explicit state
- cargo: fix overlapping progress with stdout
- cargo: improve progress bar flickering
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.
- [disposition: merge] stabilize
- [disposition: close] Make AcqRel universally usable as ordering mode.
- [disposition: close] Ghost Busting.
- [disposition: postpone] Accept semicolons as item-like.
- [disposition: postpone] Generic integers.
- [disposition: merge] Stabilize slice_sort_by_cached_key.
- [disposition: merge] deprecate before_exec in favor of unsafe pre_exec.
- [disposition: merge] Deprecate the unstable Vec::resize_default.
- [disposition: merge] Error on duplicate matcher bindings.
- [disposition: merge] Rename
- [disposition: merge] Tracking issue for std::iter::from_fn.
- [disposition: merge] Tracking issue for
- [disposition: merge] Unsized rvalues: implement boxed closure impls..
- [disposition: merge] Tracking issue for Range*::contains.
- Feb 12. Villeurbanne, FR - TupperRust.
- Feb 18. Karlsruhe, DE - Karlsruhe Rust Hack and Learn.
- Feb 20. Berlin, DE - Berlin Rust Hack and Learn.
- Feb 12. Seattle, US - Seattle Rust Meetup.
- Feb 12. Utah, US - Utah Rust monthly meetup.
- Feb 13. Ciudad de México, MX - Grupo de estudio RustMX - Sesión 1: Conceptos básicos.
- Feb 14. Columbus, US - Columbus Rust Society.
- Feb 20. Chicago, US - Chicago Rust Meetup - Property-Based Testing in Rust.
- Feb 20. Vancouver, CA - Vancouver Rust meetup.
- Feb 20. Sacramento, US - Sacramento Rust Inaugural Meetup.
- Software Engineer at Discord, San Francisco, US.
- Network Engineer at NearProtocol, San Francisco, US.
- Navitia Software Engineer at Kisio Digital, Paris, FR.
- Rust web developer at Impero, Denmark/remote
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
This time, we have two quotes for the price of one:
The borrow checker breaks you down so that it can build you back up, stronger and more resilient than you once were. It also had me do all sorts of weird things like catch flies with chopsticks and scrub counters to a polish.
– /u/bkv on /r/rust
I always think of borrowck as an angel sitting on your shoulder, advising you not to sin against the rules of ownership and borrowing, so your design will be obvious and your code simple and fast.
– llogiq on /r/rust
Thanks to Christopher Durham for the suggestion!