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
- How often does Rust change?
- The differences between Ok-wrapping, try blocks, and function level try.
- Mental models around Ok-wrapping.
- The problem of effects in Rust.
- Library-ification and analyzing Rust.
- A possible new backend for Rust.
- Simple but powerful Pratt parsing.
- Ruma is dead, long live Ruma.
- Programming Servo: My own private runtime.
- Hyper traps.
- Downloading all the crates on crates.io.
- Kubernetes: A Rusty Friendship.
- Fallible Iterator Adapters.
- Types over strings: Extensible architectures in Rust.
- [pdf] LLHD: Rust is used to drive research in Hardware Design Languages.
- rust-analyzer changelog 20.
- IntelliJ Rust changelog 120.
- New sysinfo release: processes disk usage.
- April lang team design meetings.
Crate of the Week
This week's crate is sudo, a library to let your program run as root.
Thanks to Stefan Schindler for the suggestion!
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.
- tree-buf: Floating point compression. Tree-buf is an experimental serialization system written in Rust.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
367 pull requests were merged in the last week
- support
#[track_caller]
on functions inextern "Rust" { ... }
- handle
impl Trait
whereTrait
has an assoc type with missing bounds - normalize function signature in function casting check procedure
- do not lose or reorder user-provided linker arguments
- suggest move for closures and async blocks in more cases
- remove false positives of
unused_braces
- use a
SmallVec
forCache::predecessors
- speed up path searching with
find_library_crate
- allocate some query results on an arena
- add
io::Write::write_all_vectored
- detailed panic messages for
Vec
functions - small tweaks in
ToOwned::clone_into
- remove the
Ord
bound that was plaguingdrain_filter
- match options directly in the
Fuse
implementation - implement
Chain
withOption
fuses - rearrange
BTreeMap::into_iter
to matchrange_mut
BTreeMap
first last proposal tweaks- add
or_insert_with_key
toEntry
ofHashMap
/BTreeMap
- hashbrown: add or_insert_with_key to Entry of HashMap
- arch: add more ARM SIMD intrinsics
- cargo: add
cargo tree
command
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.
RFCs
- [disposition: merge] Unsafe blocks in unsafe fn.
Tracking Issues & PRs
- [disposition: merge] Resolving
Ok
-wrapping fortry
blocks. - [disposition: merge] Stabilize
Span::mixed_site
. - [disposition: merge] Stabilize most common subset of alloc_layout_extras.
- [disposition: merge] Tracking issue for PathBuf capacity methods.
- [disposition: merge] Add Option to Force Unwind Tables.
- [disposition: merge] Move LLVM bitcode destination.
- [disposition: merge] A big options clean-up.
- [disposition: merge] Stabilize UNICODE_VERSION (feature unicode_version).
New RFCs
Upcoming Events
Online
Europe
North America
- Apr 22. Ann Arbor, MI, US - Ann Arbor Rust Meetup - Monthly Gathering.
- Apr 27. Durham, NC, US - Triangle Rustaceans - Project Night & Lightning Talks.
- Apr 28. Dallas, TX, US - Dallas Rust - Last Tuesday.
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Rust Jobs
- Backend Engineer, Data Processing – Rust (Remote) at Kraken.
- Rust Developer (US & Canada) at 1Password.
- Infrastructure Engineer at Aleph Alpha, Heidelberg, Germany.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
This viewpoint is very controversial, and I have no capacity to debate it with anyone who disagrees with me. But Rust has a very powerful macro system, so I don’t have to.
– withoutboats blogging about failure/fehler
Thanks to lxrec for the suggestions!
Please submit quotes and vote for next week!