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.
Updates from Rust Community
- Fornjot (Code-CAD in Rust) - Weekly Dev Log - 2022-W06
- Performance Tools Newsletter (Q4 2021)
- rsadsb: v0.5.0 Release
- SixtyFPS becomes Slint
- This week in Fluvio #22: the programmable streaming platform
- Rust Analyzer Changelog #116
- GCC Rust Weekly Status Report 39
- cargo-mutants 0.2.0: A new mutation testing tool for Rust
- This week in Databend #29: an elastic and reliable cloud warehouse
- A Rust match made in hell
- Dare to ask for more #rust2024
- More Enum Types
- My Rust Frontend Experiences
- What is Rust's hole purpose?
- Mocking Time in Async Rust
- Plugins in Rust: Getting our Hands Dirty
- Async IO fundamentals
- Async read and write traits
- PostgreSQL Aggregates with Rust
- [ZH] 为什么我们要Associated Type？Why do we need Associated Type?
- rsadsb: Raspberry Pi in-car ADS-B Display - with Rust!
- Computing image filters with wgpu-rs
- Let’s Build a WebSockets Project With Rust and Yew 0.19
- How to build a custom blockchain implementation in Rust using Substrate
- Rust on iOS and Mac Catalyst: A Simple, Updated Guide
- Futures Concurrency III
- Frontend Rust Without Node
- Implementing a custom async runtime in a game engine
- Assertion reporting
- [video] Implementing the NTFS filesystem in Rust
- [video] Rust Project: Deserialization with Serde
- [video] 5 Tips for Rust Beginners
- [video] Developing Embedded Applications in Rust
- [series] [video] Rust Embedded for STM32 Microcontrollers - I2C protocol (part 1)
- [series] [video] Rust Embedded for STM32 Microcontrollers - I2C protocol (with reference manual!)(part 2)
- [series] [video] Writing a Programming Language (in Rust) 15: Implementing
- Rust core team alumni
- Crane Support for Alternative Registries and Git Dependencies
- Sustainability with Rust
- Rotating log files and reassembling them for inspection
- [DE] Grafische User-Interfaces: SixtyFPS-Toolkit aus Berlin als Slint überarbeitet
Crate of the Week
This week's crate is assay, a test macro that puts each test in its own process and filesystem.
Thanks to Harsh Shandilya 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.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from the Rust Project
321 pull requests were merged in the last week
- support custom options for LLVM build
- store rlink data in opaque binary format on disk
- fix incorrect register conflict detection in
- fix regression from lazy opaque types
- better suggestions when user tries to collect into an unsized
- do not suggest char literal for zero-length strings
- improve opaque type higher-ranked region error message under NLL
- point at type when a
tainted_by_errorsin MIR borrowck, use it to skip CTFE
- more informative error message for E0015
- miri: implement
- miri: implement
const_deallocateas a no-op
HashMapnot displaying correctly in VS debugger
sub} saturating and remove workarounds
- clippy: fix
transmute_undefined_reprwith single field
- rustfmt: fix incorrect string indentation in macro defs with
- rustfmt: leverage itemized blocks to support formatting markdown block quotes
Rust Compiler Performance Triage
Only one outright regression this week. We had some very cool work from cjgillot
to prevent queries from doing expensive clones, by just forcing them all to be
Copy! Also, nnethercote's overhaul of interning yielded massive improvements
across many crates. Also, a slew of benchmarks were unexpectedly improved
quite a lot by some changes to way we invoke the linker when building LLVM itself.
Triage done by @pnkfelix. Revision range: 775e4807..a240ccd8
2 Regressions, 2 Improvements, 4 Mixed; 0 of them in rollups 47 comparisons made in total
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.
- No RFCs entered final comment period this week.
- [disposition: merge] Remove the everybody loops pass
- [disposition: merge] Stabilize
#[cfg(panic = "...")]
- [disposition: merge] Tracking Issue for bool_to_option
- [disposition: merge] Check if enum from foreign crate has any non exhaustive variants when attempting a cast
Rusty Events between 2/16/2022 - 3/16/2022 🦀
- February 16, 2022 | Vancouver, BC, CA | Rust Study/Hack/Hang-out Night | Vancouver Rust
- February 17, 2022 | Charlottesville, VA, US | Live coding talk: Implementing parser combinators in Rust | Charlottesville Rust Meetup
- February 17, 2022 | München, DE | Rust - beyond "Hello World"| Agile Softwareentwicklung München
- February 17, 2022 | Nürnberg, DE | Rust Nürnberg online #10| Rust Nuremberg
- February 17, 2022 | Stuttgart, DE | Rust-Meetup | Rust Community Stuttgart
- February 17, 2022 | Würzburg, DE | Meet and chat about Rust | Rust Würzburg Meetup Group
- February 18, 2022 | Tehran, IR | Rust Iran Meetup #5 - Type Driven Design | Rust Iran Meetup
- February 20, 2022 | Kyiv, UA | Ukrainian Rusty Dinner | Rust Ukraine
- February 22, 2022 | Dallas, TX, US | Last Tuesday Meetup | Dallas Rust
- February 22, 2022 | Dublin, IE | Rust Dublin February Meetup - Rust Dublin
- February 23, 2022 | México City, MX | Platica Febrero 2022 | Rust MX
- February 24, 2022 | Linz, AT | Rust Meetup Linz - 19th Edition | Rust Linz
- March 1, 2022 | Buffalo, NY, US | First Tuesdays: Buffalo Rust User Group | Buffalo Rust Meetup
- March 2, 2022 | Berlin, DE | Rust Hack and Learn | OpenTechSchool Berlin
- March 3, 2022 | Würzburg, DE | Guest Speaker | Herbert Wolverson | Rust gamedev in 2022 | Rust Würzburg Meetup Group
- March 7, 2022 | Valence, FR | Coding-dojo - Rust | Ardèch’Drôm Dev
- March 8, 2022 | Rostock, DE | 5. Rust Meetup Rostock | Altow Academy
- March 8, 2022 | Seattle, WA, US | Monthly meetup | Seattle Rust Meetup
- March 9, 2022 | München, DE | Rust Munich Remote(?) #10 | Rust Munich
- March 15, 2022 | Dublin, IE | Rust Dublin March Meetup - Rust Dublin
- March 15, 2022 | Washington, DC, US| Mid-month Rustful | Rust DC
- February 28, 2022 | London, UK | Rust London Code Dojo: Rust with Front-End Web Assembly | Rust London User Group
- Engineering Manager - Rust - Core Backend (Remote)
- Rust Engineer, Desktop GUI - Cryptowatch (Remote)
- Site Reliability Engineer - Rust - Core Backend (Remote)
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
I still get excited about programming languages. But these days, it's not so much because of what they let me do, but rather what they don't let me do.
Thanks to Rob Donnelly for the suggestion!
Email list hosting is sponsored by The Rust Foundation