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
Foundation
Project/Tooling Updates
- Rust Analyzer Changelog #115
- GCC Rust Monthly Report #13 January 2022
- tracing: Announcing Experimental
valuable
Support - Arti 0.0.4 is released: Refactoring, rustls, and more!
- Nushell v0.44
- Rust API for the Firefox Profiler
- This week in Fluvio #21: the programmable streaming platform
- What's new in SeaORM 0.6.0
- SixtyFPS (GUI crate): Changelog for 06th of February 2022
- Announcing BonsaiDb v0.1.0: A Rust NoSQL database that grows with you
- Fornjot (Code-CAD in Rust) - Weekly Dev Log
- Knurling-rs changelog #33
- Open-sourcing update-informer: a highly customizable Rust library for CLI apps
- This week in Databend #28: an elastic and reliable cloud warehouse
Newsletters
Observations/Thoughts
- Minor Semver Issue
- A first look at Sycamore's new reactive primitives
- Rustenstein 3D: Game programming like it's 1992
- Hot Reloading Rust: Windows and Linux
- Past, present and future of rust-protobuf
- An optimization story
- Sayonara, Mozilla
- Some mistakes Rust doesn't catch
- The simplest guide to error handling in Rust
- Vangers 3D: example of using Emscripten in Rust
- My Rust Book: Language for the next 40 years
- [RU] Вангеры 3D: пример использования Emscripten в Rust
- [ZH] 为什么 Rust 没有继承?Why doesn't Rust have inheritance?
- [audio] Building with Rust: Josh Triplett on Building the Build System of his Dreams
- [video] Top 6 Books to learn the Rust Programming Language in 2022
- [video] Rust 101 Lecture Series
Rust Walkthroughs
- Rust Turbofish: Closure Return Type
- Downcasting in Rust
- Crafting A Lox Interpreter In Rust, Part 1
- Let's create an app in webassembly
- RISC-V Bytes: Rust Cross-Compilation
- ESP32 MQTT Publish with Rust
- Containerless! How to Run WebAssembly Workloads on Kubernetes with Rust
- The foundations of end-to-end encryption: Domain separation (with code example in Rust)
- Compiler Adventures, part 1: No-op Instructions
- [video] Desktop UIs with Rust and React
- [series] [video] Rust Embedded for STM32 Microcontrollers - Cross-compilation
- [series] [video] Rust Embedded for STM32 Microcontrollers - HAL Crates
Miscellaneous
Crate of the Week
This week's crate is document-features, a small proc macro to parse your Cargo.toml
and generate docs for your features.
Thanks to Tobias Hunger 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.
Unicode ICU4X
Fuchsia Netstack3
- Make language more inclusive
- Debugging a panic in IP packet fragment reassembly
- fuzzing Netstack3 and its dependents
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from the Rust Project
301 pull requests were merged in the last week
- add new target armv7-unknown-linux-uclibceabi (softfloat)
- continue work on associated const equality
- clarify error on casting larger integers to char
- fix suggestion to slice if scrutinee is a
Result
orOption
- if an integer is entered with an upper-case base prefix (0Xbeef, 0O755, 0B1010), suggest to make it lowercase
- add rustc lint, warning when iterating over hashmaps 2
- borrowck: fix help on mutating
&self
inasync fn
s - perf: compress amount of hashed bytes for
isize
values in StableHasher - perf: use
fold_list
intry_super_fold_with
forSubstsRef
- codegen_gcc: implement simd_neg
- optimize
core::str::Chars::count
- impl
Arc::unwrap_or_clone
- carefully remove bounds checks from some chunk iterator functions
- Impl arithmetic (assign-)ops traits for
Wrapping<_>
for rust 1.60.0 - implement
RawWaker
andWaker
getters for underlying pointers - rustdoc: collect traits in scope for foreign inherent impls
- clippy: add
explicit_write
suggestions forwrite!
s with format args - clippy: add lint
transmute_undefined_repr
- clippy: fix ICE in
ptr_arg
- clippy: split matches
- clippy:
chars_next_cmp
fix unescaped suggestion - clippy: fix
explicit_counter_loop
suggesting.into_iter()
, despite that triggeringinto_iter_on_ref
in some cases - clippy: make
unwrap_used
also trigger on.get().unwrap()
- clippy: warn if we find multiple clippy configs
- rustfmt: fix doc of generic items formmating error
- rustfmt: fix import_granularity option when the use tree has an alias
- rustfmt: handle non-ascii character at boundary
Rust Compiler Performance Triage
A week with a number of correctness-related regressions, and a few small cleanups yielding good performance results. Overall an improvement, particularly for incremental benchmarks.
Triage done by @simulacrum. Revision range: 1ea48517..775e480
4 Regressions, 2 Improvements, 5 Mixed; 1 of them in rollups 27 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: close] Tracking issue for naked fns (RFC #1201)
New and Updated RFCs
Upcoming Events
Rusty Events between 2/9/2022 - 3/9/2022 🦀
Online
- February 9, 2022 | Boulder, CO, US | Monthly Meetup | Boulder Elixir and Rust
- February 9, 2022 | Los Angeles, CA, US | Raphael Tessmer & Celeste, finding craters on a rusty planet (Virtual) | Rust Los Angeles
- February 9, 2022 | Stuttgart, DE | Rust-Meetup | Rust Community Stuttgart
- February 10, 2022 | San Diego, CA, US | San Diego Rust February 2022 Tele-Meetup | San Diego Rust
- February 15, 2022 | Berlin, DE | Rust Hack and Learn | OpenTechSchool Berlin
- February 15, 2022 | Indianapolis, IN, US | Indy.rs - with Social Distancing | Indy Rust
- February 15, 2022 | Washington, DC, US| Mid-month Rustful | Rust DC
- February 16, 2022 | Vancouver, BC, CA | Rust Study/Hack/Hang-out Night | Vancouver Rust
- 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 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 7, 2022 | Valence, FR | Coding-dojo - Rust | Ardèch’Drôm Dev
- March 8, 2022 | Seattle, WA, US | Monthly meetup | Seattle Rust Meetup
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
Tempus Ex
LoanPASS
Slight
Pixy
Apollo
Kollider
Kraken
- Backend Engineer - Rust - Core Backend (Remote)
- Backend Engineer, Kraken Futures - Rust (Remote)
- Senior Rust Engineer - Banking (Remote)
Wasmer * Senior Rust Engineer (Remote)
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
As the temporary human substitute for the temporarily unavailable automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed.
– Mara Bos (on behalf of RFCbot) on github
Thanks to Josh Triplett 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