Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. 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
Foundation
Project/Tooling Updates
- Helix editor 22.03 released
- Announcing fp-bindgen
- Rust-Analyzer Changelog #122
- IntelliJ Rust Changelog #167
- BonsaiDb v0.4.0: Now available without async
- Slint (GUI crate) weekly update
- Fornjot (Code-CAD in Rust) - Weekly Dev Log - 2022-W12
- This week in Databend #35: A Modern Cloud Data Warehouse for Everyone
- This week in Fluvio #26: the programmable streaming platform
Observations/Thoughts
- dyn*: can we make dyn sized?
- Oxide on My Wrist: Hubris on PineTime was the best worst idea
- Self Modifying Code
- Async destructors, async genericity and completion futures
- A thanks to the traits working group in 2021
- When not to use Rust?
- Yet Another GitHub Profile Generator
Rust Walkthroughs
- Cross-compilation in Rust
- Introducing "High Assurance Rust": a FREE systems software security book!
- Advanced deserialization with Serde: Parsing Cloudformation templates
- Tiny and Fast Docker image for Rust Application
- My First Clippy Lint - Statistically Insignificant
- Introducing "High Assurance Rust"
- Rust for JavaScript developers: SQS batch error handling with AWS Lambda
- [video] Introduction to WAGI by Rainer Stropek & Stefan Baumgartner
- [video] Rust for Linux by Miguel Ojeda and Wedson Almeida Filho
Miscellaneous
- [audio] Interview with Dustin (A/B Street) | Rust Game Dev
- [audio] Rust Servers, Services, and Apps with Prabhu Eshwarla
- [videos] RustFest LATAM 2022 [ESP]
- [videos] RustFest LATAM 2022 [ENG]
Crate of the Week
This week's crate is lapce, a lightning-fast powerful code editor written in Rust.
llogiq is pretty pleased with his choice.
Please 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.
- Call for Speakers: RustFest Global - EMEA Edition (2022-04-23)
- tauri-apps/tao - [bug] Global shortcuts are never triggered on Linux
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from the Rust Project
278 pull requests were merged in the last week
- proc-macro: stop wrapping
ident
matchers into groups - debuginfo: fix debuginfo for
Box<T>
whereT
is unsized - better errors when a Copy impl on a Struct is not self-consistent
- provide suggestion for missing
>
in a type parameter list - suggest constraining param for unary ops when missing trait impl
- suggest replacing a field when using the same type
- tell users that
||
operators are not currently supported in let chain expressions - diagnostics: correct generic bounds with doubled colon
- diagnostics: do not give
Option::as_ref
suggestion for complex match - diagnostics: do not suggest
fn foo({ <body> }
- diagnostics: suggest missing comma in bad FRU syntax
- fix function pointers of different param counts unifying
- change Thir to lazily create constants
- fix perf issue for auto trait selection
- overlap inherent impls
- more macro expansion optimizations
- ignore doc comments in a declarative macro matcher
- allow comparing
Vec
s with different allocators using==
- stabilize
const_ptr_offset
- impl
From<&[T; N]>
andFrom<&mut [T; N]>
forVec<T>
- resolve: do not build expensive suggestions if they are not actually used
- codegen_gcc: add
--release-sysroot
flag tobuild.sh
- codegen_gcc: don't pass
--target
incargo.sh
- clippy: check if
lhs < rhs
in modulos inidentity_op
- clippy:
map_identity
checks for needlessmap_err
- clippy:
unnecessary_join
lint
Rust Compiler Performance Triage
A mixed week: some minor regressions, but things overall improved for instruction counts.
Max RSS has gone up slightly over the past month, on the order of 0.5% regression according to benchmark summary. pnkfelix is following up on that with rustc-perf team on zulip
Triage done by @pnkfelix. Revision range: 3ea44938..3e751467
4 Regressions, 5 Improvements, 4 Mixed; 3 of them in rollups 63 comparisons made in total
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] New Rust attribute to support embedding debugger visualizers
Tracking Issues & PRs
- [disposition: merge] Tracking Issue for RFC 3107: derive_default_enum
- [disposition: merge] Tracking Issue for scoped threads
- [disposition: merge] Tracking Issue for windows_process_extensions_raw_arg
New and Updated RFCs
Upcoming Events
Rusty Events between 2022-03-30 - 2022-04-27 🦀
Virtual
- 2022-03-30 | London, UK | Rust LDN
- 2022-03-30 | México City, MX | Rust MX
- 2022-03-30 | Stuttgart, DE | Rust Community Stuttgart
- 2022-03-31 | Köln, DE | Shop Apotheke Europe
- 2022-04-04 | Philadelphia, PA, US | Rust Philly (Rust Philadelphia)
- 2022-04-05 | Austin, TX, US | WebAssembly and WasmEdge
- 2022-04-05 | Beijing, CN | WebAssembly and Rust Meetup (Rustlang)
- 2022-04-05 | Buffalo, NY, US | Buffalo Rust Meetup
- 2022-04-05 | Denver, CO, US | Rust Denver
- 2022-04-06 | Egg Harbor City, NJ, US | Neighborhood Math Club
- 2022-04-06 | Indianapolis, IN, US | Indy Rust
- 2022-04-06 | Philadelphia, PA, US | Rust Philly (Rust Philadelphia)
- 2022-04-07 | Nürnberg, DE | Rust Nuremberg
- 2022-04-11 | Philadelphia, PA, US | Rust Philly (Rust Philadelphia)
- 2022-04-11 | Seattle, WA, US | Seattle Rust Meetup
- 2022-04-12 | Dallas, TX, US | Dallas Rust
- 2022-04-12 | Saarbrücken, DE | Rust-Saar
- 2022-04-13 | Boulder, CO, US | Boulder Elixir and Rust
- 2022-04-13 | Egg Harbor City, NJ, US | Neighborhood Math Club
- 2022-04-13 | Munich, DE | Rust Munich
- 2022-04-14 | Stuttgart, DE | Rust Community Stuttgart
- 2022-04-18 | Philadelphia, PA, US | Rust Philly (Rust Philadelphia)
- 2022-04-19 | Washington, DC, US | Rust DC
- 2022-04-20 | San Diego, CA, US | San Diego Rust
- 2022-04-20 | Vancouver, BC, CA | Vancouver Rust
- 2022-04-23 | Various - EMEA | Rustfest
- 2022-04-27 | Stuttgart, DE | Rust Community Stuttgart
Europe
- 2022-03-30 | London, UK | Rust LDN
- 2022-04-06 | Amsterdam, NL | Rust Developers Amsterdam Group, Part of Rust Amsterdam Network | Alt link
- 2022-04-06 | Bristol, UK | Rust Bristol
- 2022-04-12 | Berlin, DE | Rust Berlin
- 2022-04-13 | Munich, DE | Rust Munich
- 2022-04-13 | Paris, FR | Stockly
- 2022-04-14 | Cambridge, UK | Cambridge Rust Meetup
- 2022-04-19 | Bristol, UK | Rust Bristol
North America
- 2022-04-05 | Denver, CO, US | Rust Denver
- 2022-04-13 | Atlanta, GA, US | Rust ATL
- 2022-04-14 | Columbus, OH, US | Columbus Rust Society
- 2022-04-19 | San Francisco, CA, US | San Francisco Rust Study Group
Oceania
- 2022-04-21 | Melbourne, AUS | Rust Melbourne
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
PlayStation Global
harrison.ai
Parity
Enso
Nuclia
Stockly
- Back-end developer - TechOps (Rust, gRPC, PostgreSQL) (Paris, FR, US)
- Back-end developer - Engine (Rust, gRPC, PostgreSQL) (Paris, FR, US)
Quickwit
- Senior Software Engineer, Rust & distributed systems - Rust (Remote)
- Software search engineering intern - Rust (Remote)
Tempus Ex
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
All that to say that Rust does precisely this great job at decoupling some of these notions that have been, historically, quite tangled for a while; and for those used to that environment with everything muddied, it can be a bit hard to take a step back and rethink these distinctions that Rust makes.
Thanks to H2CO3 for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin.
Email list hosting is sponsored by The Rust Foundation