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.
- Writing an OS in Rust: Advanced paging.
- Embedding WebAssembly in your Rust application.
- Lock-free Rust: Crossbeam in 2019.
- Performance of Rust's match vs. lookup tables.
- Librsvg's GObject boilerplate is in Rust now.
- Enjoy a slice of QUIC, and Rust. Quiche is an implementation of the QUIC transport protocol, by Cloudflare.
- Exporting Serde types to TypeScript.
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.
186 pull requests were merged in the last week
- enable RISC-V atomic compare and swap
- recover from parse errors in literal struct fields and incorrect float literals
- merge visitors in AST validation
- resolve: Fix span arithmetics in the import conflict error
- fix race condition when emitting stored diagnostics
- don't ICE when logging unusual types
- combine all builtin early lints
- add suggestion for moving type declaration before associated type bindings in generic arguments
- add suggestion for incorrect field syntax
- suggest removing leading left angle brackets
- add error for trailing angle brackets
- print visible name for types as well as modules
- use structured suggestion instead of notes
- explain type mismatch cause pointing to return type when it is
- when using value after move, point at span of local
- conditionally skip two passes if their related attributes were not found
- fix evaluating trivial drop glue in constants
- const_eval: predetermine the layout of all locals when pushing a stack frame
- fix memory leak in
- get rid of the fake stack frame for reading from constants
- add intrinsic to create an integer bitmask from a vector mask
Debugimplementation more useful
strindexing generic on
- small perf improvement for
- add signed
- std: stabilize fixed-width integer atomics
- use pinning for generators to make trait safe
- cargo: make incremental compilation the default for all profiles
- rustdoc: fix ICE from loading proc-macro stubs
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.
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: postpone] RFC for anonymous variant types, a minimal ad-hoc sum type.
- [disposition: merge] Deprecate the unstable Vec::resize_default.
- [disposition: merge] Error on duplicate matcher bindings.
- [disposition: merge] syntax: Remove warning for unnecessary path disambiguators.
- [disposition: merge] Automatically open an issue when a tool breaks.
- [disposition: merge] [WIP] Unsized rvalues: implement boxed closure impls..
- [disposition: merge] Tracking issue for Range*::contains.
- RFC for a formalized notion on where to enforce reference propertes in MIR.
- Jan 31. Helsinki, FI - Helsinki Rust meetup.
- Jan 31. Copenhagen, DK - [cph.rs] Copenhagen Rust Hack Night #12 .
- Jan 31. Oslo, NO - Rust Oslo - Hack & Learn.
- Jan 31. Torino, IT - Turin Rust meetup.
- Feb 3. Bruxelles, BG - Rust Dev Room @ FOSDEM.
- Feb 6. Berlin, DE - Berlin Rust Hack and Learn.
- Jan 31. Phoenix, US - Phoenix Rust: Games.
- Feb 6. Atlanta, US - Rust Atlanta Meetup.
- Feb 6. Vancouver, CA - Vancouver Rust meetup.
- Feb 7. Indianapolis, US - Indy.rs.
- Feb 12. Seattle, US - Seattle Rust Meetup.
- Feb 12. Utah, US - Utah Rust monthly meetup.
- Senior Embedded Systems Engineer at SpanIO, San Francisco, US.
- Senior Software Engineer at Prevoty, Los Angeles, US.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Rust is kind of nice in that it lets you choose between type erasure and monomorphization, or between heap-allocation and stack-allocation, but the downside is that you have to choose.
– Brook Heisler on discord (login needed, sorry!)
Thanks to scottmcm for the suggestion!