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
Newsletters
Project/Tooling Updates
- rust-analyzer in 2021
- rust-analyzer changelog #110
- The year 2021 in Dimforge and our objectives for 2022
- This week in Fluvio #18: the programmable streaming platform
- What's new in SeaORM 0.5.0
- Ezio
- SixtyFPS (GUI crate): Changelog for 3rd of January 2022
- Introducing Dioxus v0.1
- SNAFU 0.7 Released
- hyper-ish 2021 in review
- This Week in Glean: Glean in 2021
- This week in Databend #23: an elastic and reliable cloud warehouse
Observations/Thoughts
- Ranges and suffering
- Why is my Rust build so slow?
- Implementing Spinlock for RISC-V OS in Rust
- Writing bindings upside down
- Rust 2021 – Looking Back and Forth
- How a Single Line of Code Made a 24-core Server Slower Than a Laptop
- In Defense of Async: Function Colors Are Rusty
- Rust and Valgrind
- Porting Rust's std to rustix
- Improved portability and performance 🦀
- Thoughts on return, break and continue
- Parsing Decimals 4 times faster
- Beyond the Borrow Checker: Differential Fuzzing
Rust Walkthroughs
- Don't shell out!
- 12 Rust Tips and Tricks you might not know yet
- Indexing Strings in Rust and TypeScript: A Case Study of String
- Safe && Portable Data Structure Design
- The joy of building a ray tracer, for fun, in Rust
- An Introduction To Session-based Authentication In Rust
- Profiling linkers
- Debian's approach to Rust - Dependency handling
- Nine Rules for Writing Python Extensions in Rust & Rayon
- Why Rust enums are so cool
- [DE] Auf Nummer sicher: Sicheres Programmieren mit Rust
- [series] [video] Let's build a voice journal in Rust | Ep. 1: audio I/O, SQlite, CLI args
- [series] [video] Rust Embedded for STM32 Microcontrollers - Intro
Miscellaneous
- Fluvio SmartModules with user-defined parameters
- [Audio] LibertyOS with Daniel Teberian
- [Video] Web api benchmarking: Rust (Axum) vs Rust (Warp)
- [Video] Adding while statements to Rena
Crate of the Week
This week's crate is fltk-rs, a crate with bindings to the FLTK GUI toolkit.
Thanks to Mark Summerfield 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
230 pull requests were merged in the last week
- allow loading LLVM plugins with both legacy and new pass manager
- suggest
while let x = y
when encounteringwhile x = y
- refactor variance diagnostics to work with more types
- extend check for
UnsafeCell
in consts to cover unions - parse and suggest moving where clauses after equals for type aliases
- relax
priv-in-pub
lint on generic bounds and where clauses of trait impls - perf: store liveness in interval sets for region inference
- add
try_reserve
andtry_reserve_exact
forOsString
- support
[x; n]
expressions inconcat_bytes!
- std-simd: impl
std::simd::StdFloat
- rustdoc: use
ThinVec
forGenericArgs
bindings - clippy: extend
unused_io_amount
to cover async io - clippy: fix
enum_variants
false positive on prefixes that are not camel-case - clippy: fixed issues with
to_radians
andto_degrees
lints - clippy: limit the
identity_op
lint to integral operands - clippy:
erasing_op
lint ignored when operationOutput
type is different from the type of constant0
- clippy: perf: cache test item names
- clippy: fix
redundant_closure
fp withRc<F>
/Arc<F>
- clippy:
wrong_self_convention
: matchSelfKind::No
more restrictively - rustfmt: do not flatten match arm block with leading attributes
- rustfmt: improve out of line module resolution
- rustfmt: support parsing of asm! args
Rust Compiler Performance Triage
It was a relatively calm, but good week overall. Most of the gains were improvements to rustdoc running times.
Triage done by @pnkfelix. Revision range: e91ad5..2b681a
1 Regressions, 6 Improvements, 1 Mixed; 0 of them in rollups 38 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:
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 new RFCs entered Final Comment Period this week.
Tracking Issues & PRs
- [disposition: merge] Tracking issue for Box::into_pin (feature box_into_pin)
- [disposition: merge] make Instant::{duration_since, elapsed, sub} saturating and remove workarounds
New RFCs
- No new RFCs were published this week.
Upcoming Events
Rusty Events between 1/5/2022 - 2/2/2022 🦀
Online
- January 5, 2022 | Indianapolis, IN, US | Indy.rs - with Social Distancing | Indy Rust
- January 6, 2022 | Cardiff, UK | Rust Book Study Session - Automated Tests & Building a Command Line Program | Rust and C++ Cardiff
- January 6, 2022 | Nürnberg, DE | Rust Nürnberg online #8| Rust Nuremberg
- January 8, 2022 | Various cities | Rust GameDev Monthly Meetup | Rust GameDev
- January 11, 2022 | Dallas, TX, US | Second Tuesday Meetup| Dallas Rust
- January 11, 2022 | Los Gatos, CA, US | Book #24 - Rust for Rustaceans - Chapter 2 | Los Gatos Reading Group
- January 11, 2022 | Seattle, WA, US | Monthly meetup | Seattle Rust Meetup
- January 12, 2022 | Malaysia, MY | Rust Meetup Malaysia | Rust Meetup Malaysia
- January 12, 2022 | Boulder, CO, US | Monthly Meetup | Boulder Elixir and Rust
- January 12, 2022 | Frankfurt, DE | Rust for bare-metal embedded systems | Developing Embedded Systems in Rhein-Main
- January 12, 2022 | Los Angeles, CA, US | Live Coding Session - Mob Programming a Rust Code Kata [Virtual] Jan. 2022 | Rust Los Angeles
- January 12, 2022 | Stuttgart, DE | Rust-Meetup | Rust Community Stuttgart
- January 13, 2022 | Charlottesville, VA, US | Higher kinded polymorphism | Charlottesville Rust Meetup
- January 13, 2022 | Minneapolis, MN, US | Safe Systems Programming in Rust: The Promise and the Challenge | Software Engineering Reading Group
- January 13, 2022 | San Diego, CA, US | San Diego Rust Rust January 2022 Tele-Meetup | San Diego Rust
- January 13, 2022 | Warsaw, PL | Rust Warsaw #4 | Rust Warsaw
- January 18, 2022 | Washington, DC, US| Mid-month Rustful | Rust DC
- January 19, 2022 | Vancouver, BC, CA | Rust Study/Hack/Hang-out night | Vancouver Rust
- January 25, 2022 | Dallas, TX, US | Last Tuesday Meetup | Dallas Rust
- January 27, 2022 | Stuttgart, DE | Rust-Meetup | Rust Community Stuttgart
- February 1, 2022 | Buffalo, NY, US | First Tuesdays: Buffalo Rust User Group | Buffalo Rust Meetup
North America
- January 6, 2022 | Austin, TX, US | Rust Lunch | Rust ATX
- January 12, 2022 | Atlanta, GA, US | Grab a beer with fellow Rustaceans | Rust Atlanta
- January 13, 2022 | Columbus, OH, US | Monthly Meeting | Columbus Rust Society
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
Dreamsolution
Dusk
Ockam
Estuary
Kraken
- Backend Engineer - Rust - Core Backend (Remote)
- Backend Engineer, Kraken Futures - Rust (Remote)
- Senior Rust Engineer - Banking (Remote)
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
I performed an extremely scientific poll on twitter, and determined this is not how it's pronounced
Well, it really is
Vec<T, A>
, pronounced Veck-tah. 😛
Look, I moved away from Boston to avoid this sort of thing 😄.
– the8472 & Thom Chiovoloni 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