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
Official
Project/Tooling Updates
- 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
Newsletters
Research
Observations/Thoughts
- 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?
Rust Walkthroughs
- 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
this
Miscellaneous
- 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!
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.
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
asm!
- fix regression from lazy opaque types
- make
span_extend_to_prev_str()
more robust - 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
static
#[global_allocator]
doesn'timpl GlobalAlloc
- make
find_similar_impl_candidates
even fuzzier - implement
tainted_by_errors
in MIR borrowck, use it to skip CTFE - more informative error message for E0015
- miri: implement
const_allocate
intrinsic - miri: implement
const_deallocate
as a no-op - stabilise
is_aarch64_feature_detected!
undersimd_aarch64
feature - stabilise
inherent_ascii_escape
- stabilize
cfg_target_has_atomic
- stabilize
int_abs_diff
- fix
HashMap
not displaying correctly in VS debugger - add
From<u8>
forExitCode
- add
str::
{floor
,ceil
}_char_boundary
methods std::path::absolute
- implement
AsFd
for&T
and&mut T
- make
Instant::
{duration_since
,elapsed
,sub
} saturating and remove workarounds - clippy: fix
transmute_undefined_repr
with single field#[repr(C)]
structs - rustfmt: fix incorrect string indentation in macro defs with
format_strings
- 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
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
- No RFCs entered final comment period this week.
Tracking Issues & PRs
- [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
New and Updated RFCs
Upcoming Events
Rusty Events between 2/16/2022 - 3/16/2022 🦀
Online
- 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
Europe
North America
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
Fig
Nuclia
Rayon
LoanPASS
Wasmer
PolySign
Kollider
Kraken
- Engineering Manager - Rust - Core Backend (Remote)
- Rust Engineer, Desktop GUI - Cryptowatch (Remote)
- Site Reliability Engineer - Rust - Core Backend (Remote)
Stockly
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.
– Amos blogging about mistakes Rust doesn't catch
Thanks to Rob Donnelly 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