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.
We are so happy to have reached issue 400 of This Week in Rust! To mark this occasion, we would like to introduce you to your editors who put these issues together for you every week!
Hello everyone! I'm Nell Shamrell-Harrington (nellshamrell on GitHub). I've served as lead editor of This Week in Rust for a little over a year now. Currently, I work as a Principal Engineer at Microsoft, prior to that I was on the Rust team at Mozilla. I also am a member of the Rust Foundation Board of Directors. My greatest joy in editing This Week in Rust is seeing how dedicated Rustaceans are to teaching and passing on what they have learned. We are a community where personal maturity and empathy are as important as technical excellence. When I'm not working, I'm often caring for and playing with my three pet bunnies - Lucy, Leia, and Noah!
Greetings, Rustaceans! I'm Andre 'llogiq' Bogus, and I've been editing TWiR since 2016. I currently work with synth, my third Job using Rust. I am one of the first clippy maintainers, a mod team member, a Rust bard and I have several crates to my name. I'm always amused with the quotes you folks suggest, and like being on top of the merged PRs, so I know what's coming in the next Rust versions. Besides Rust, I like making music, biking, skateboarding and spending time with my wife, three kids and cat.
Good morning to all of you fellow Rustaceans! I'm Colton Donnelly (usually under the screen name cdmistman), and I've been editing TWiR since May 2020. I'm currently a co-op working on the Alan programming language, which uses Rust in the runtime - this is the second time I've had an internship using Rust! I've really enjoyed reading all of your Rust blog posts and articles over the past year (and practicing my speed-reading while I'm at it), it's been awesome seeing how much knowledge y'all like to share. When I'm not coding, I'm usually playing games with friends or binge-watching shows.
Thank you so much to all who have edited This Week in Rust over the years!
And a special thank you to all who have contributed to This Week in Rust and every single one of our subscribers and readers! Here is to many more issues!
Updates from Rust Community
No newsletters or papers this week.
- IntelliJ Rust Changelog #151
- rust-analyzer Changelog #86
- Announcing tokio-uring: io-uring support for Tokio
- Franzplot: a teaching software (re)written in Rust
- wgpu: release of v0.9 and the future
- Allsorts: Font Shaping Engine 0.6 Release
- This Week In TensorBase 12
- cargo-ui: Introducing cargo-ui, a GUI for cargo
- Quickwit: A highly cost-efficient search engine in Rust
- Compiling Rust is NP-hard
- How we improved the performance of our Rust app
- Making Rust Float Parsing Fast: libcore Edition
- Adventures in Rust and Load Balancers
- Faster (and smaller) uploads in Discourse with Rust, WebAssembly and MozJPEG
- How to implement worker pools in Rust
- Run rust wasm in electron app
- Host a Wasm module easily on Raspberry Pi Part 2
- Rust and the JVM
- Smart Pointers in Rust: What, why and how?
- Lazy async operations in Rust
- 05 - Basic CRUD with rust using tide - front-end with tera
- Rust #5: Naming conventions
- Leader election in rust the journey towards implementing nun-db leader election
- Novel way to Develop, Test, and Document C libraries from Rust
- Rust + Tauri + Svelte Tutorial
- Static Integer Types
- Serializing data faster
- [series] Basic CRUD api with Rust and Tide
- [series] Implementing ICMP in Rust
- I. Implementing ICMP in Rust
- II. Implementing ICMP in Rust
- [series] [video] Explaining rust-analyzer
- A GPIO driver in Rust
- Computer Scientist proves safety claims of the programming language Rust
- JetBrains The State of Developer Ecosystem 2021: Rust
Crate of the Week
This week's crate is dylint, a tool for running Rust lints from dynamic libraries.
Thanks to George Hahn for the suggestion.
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.
- Knurling-rs user survey
- Rust.Tokyo 2021
- Helix editor icon/logo brainstorm
- Ockam welcomes new contributors!
- Forest - Cleanup net peers output
- Forest - FOREST_CONFIG_PATH env var
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
280 pull requests were merged in the last week
- handle non-integer const generic parameters in debuginfo type names
- warn about useless assignments of variables/fields to themselves
- suggest a path separator if a stray colon is found in a match arm
- add diagnostics for mistyped inclusive range
- various diagnostics clean ups/tweaks
- compute a better
- TAIT: infer all inference variables in opaque type substitutions via
- remove refs from
- shrink the
- loop over all opaque types instead of looking at just the first one with the same DefId
- cache expansion hash globally
- perf: noise and variance
- some perf optimizations and logging
- update Rust Float-Parsing to use the Eisel-Lemire algorithm
- split `MaybeUninit::write' into new feature gate and stabilize it
- mark Option::insert as
- hashbrown: replace some custom unsafe code with
- hashbrown: optimize
- cargo: deduplicate compiler diagnostics
- cargo: add
das an alias for doc
- clippy: fix false positives and document
- clippy: new lint:
- clippy: add
- clippy: fix ICE in
Rust Compiler Performance Triage
A mixed week, with some moderate regressions and moderate improvements. There were some notable PR's that were specifically oriented around performance enhancements.
Triage done by @pnkfelix. Revision range: 5aff6dd07a562a2cba3c57fc3460a72acb6bef46..5c0ca08c662399c1c864310d1a20867d3ab68027
3 Regressions, 3 Improvements, 3 Mixed; 1 of them in rollups
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation 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 arbitrary_enum_discriminant
- [disposition: close] regression: infallible residual could not convert error
- [disposition: merge] Allow reifying intrinsics to fn pointers.
- [disposition: merge] Commit to not supporting IPv4-in-IPv6 addresses
- [disposition: merge] Stabilize core::task::if_ready!
- [disposition: close] Implement RFC 2500 Needle API (Part 1)
- July 21, 2021, Vancouver, BC, CA - Rust Adoption at Huawei - Vancouver Rust
- July 22, 2021, Tokyo, JP - Rust LT Online#4 - Rust JP
- July 22, 2021, Berlin, DE - Rust Hack and Learn - Berline.rs
- July 27, 2021, Dallas, TX, US - Last Tuesday - Dallas Rust
- August 3, 2021, Buffalo, NY, US - Buffalo Rust User Group, First Tuesdays - Buffalo Rust Meetup
The Tor Project
The Mobility House GmbH
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Tip: whenever you wonder if Pin could be the solution, it isn't
Thanks to Kestrer for the self-suggestion!