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
- Updates in IntelliJ Rust for 2021.3
- Rust Analyzer Changelog #106
- cloud-hypervisor v20.0
- SixtyFPS (GUI crate): Changelog for 5th of December 2021
- This Month in Rust OSDev (November 2021)
- GCC Rust Monthly Report #12 November 2021
- rustc_codegen_gcc: Progress Report #6
- Arti 0.0.2 is released: API groundwork, refactoring, config, and optimism
- Rust takes a major step forward as Linux's second official language
- Updated Rust Code For Linux Kernel Patches Posted
- xmake v2.6.1 released, Switch to Lua5.4 runtime, Support Rust and Cplusplus mixed compilation
- Announcing Sycamore v0.7.0: Client-side hydration + Builder API
- Nushell 0.41
- [DE] WebAssembly: Wasmer 2.1 ermöglicht das Ausführen von Rust-Projekten im Browser
- [DE] Programmiersprache: Rust 1.57 – Don't Panic!
Observations/Thoughts
- Uninit read/write
- Portable and interoperable async Rust
- Speedrunning GUI development in Rust
- My Cryptography Final Project
- Case study: Rust programming language community
- Linear Types Can Help
- [video] On Hubris and Humility: developing an OS for robustness in Rust text version
Rust Walkthroughs
- How to encrypt a file in Rust (Using streaming AEAD encryption)
- Getting Started with Rust on a Raspberry Pi Pico (Part 3)
- A better cargo-readme - Issue 0: Humble Beginning
- How to Overriding (Patch) Cargo Dependencies
- Higher Kinded Types in Rust
- Node to Rust: Day 1 - From nvm to rustup
- Creating a Web Page with Actix-Web (Rust)
- [video] rg3d - live game development #2
- [video] 1Password Developer Fireside Chat: Ownership & Mutability Patterns in Rust
- [video] [series] Advent of Code in Rust by Lucille Blumire
- [video] [series] Solving Advent of Code 2021 in Rust by Yoshua Wuyts
- [video] [series] Writing a Programming Language (in Rust) 9: Implementing Value References
Miscellaneous
- Live Coder Jon Gjengset Gets into the Nitty-Gritty of Rust
- AWS SDK for Rust (Developer Preview)
- [BR-pt] Esta Semana em Rust #419
Crate of the Week
This week's crate is tap, a library with extension traits to provide suffix-position pipeline behavior.
Thanks to David Mason 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
286 pull requests were merged in the last week
- Optimize
rustc_lexer
- Add support for LLVM coverage mapping format versions 5 and 6
- Add support for riscv64gc-unknown-freebsd
- Fix ICE in
check_must_not_suspend_ty()
- Fix ICE when
yield
ing in function returningimpl Trait
- Don't suggest types whose inner type is erroneous
- Only show notable traits if both types are the same
- Improve diagnostic for missing half of binary operator in
if
condition - Improve error message for
E0659
if the source is not available - Improve error message for incorrect field accesses through raw pointers
- Add
Option::inspect
andResult::{inspect, inspect_err}
- Add a
try_reduce
method to theIterator
trait - Add slice
take
methods - Make
array::
{try_from_fn
,try_map
} andIterator::try_find
generic overTry
- Introduce
RawVec::reserve_for_push
- Implement
VecDeque::retain_mut
- libc: Define
max_align_t
for wasi - portable-simd: Generic
core::ops
forSimd<T, _>
- cargo: Stabilize
future-incompat-report
- cargo: Support abbreviating
--release
as-r
- clippy: Consider
NonNull
as a pointer type - clippy: Escape backslash in
single_char_pattern.rs
- clippy: Fix
any()
not taking reference insearch_is_some
lint - clippy: Fix some false negatives for
single_char_pattern
- clippy: Parenthesize blocks in
needless_bool
suggestion - clippy: Upgrade
map_flatten
to complexity - rustfmt: Determine when new comment lines are needed for itemized blocks
Rust Compiler Performance Triage
A week of mostly rather small changes with many regressions being hard to diagnose. The largest regression comes from the introduction of a new future (desugaring .await
into a call to IntoFuture::into_future
). This was deemed acceptable as it only seems to have a negative impact in stress test situations where async/await is used more than one would normally expect. Unfortunately this does mean regressions beat out improvements this week.
Triage done by @rylev. Revision range: 1c0287..ecb65b
3 Regressions, 5 Improvements, 5 Mixed; 3 of them in rollups 31 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 RFCs entered final comment period this week.
Tracking Issues & PRs
- [disposition: merge] Relax priv-in-pub lint on generic bounds and where clauses of trait impls.
New RFCs
Upcoming Events
Rusty Events between 12/01-12/15 🦀
Online
- December 3, 2021 | New York City, NY, US | Getting started in aerospace with Rust 🦀 | NewSpace NYC.
- December 7, 2021 | Berlin, DE | Rust Hack and Learn | Berline.rs, a Berlin-local Rust community
- December 7, 2021 | Buffalo, NY, US | First Tuesdays: Buffalo Rust User Group | Buffalo Rust Meetup
- December 7, 2021 | South Padre Island, TX, US | Tuesdays - Book #24 - Rust for Rustaceans - Chapter 1 | Los Gatos Reading Group (South Padre Island)
- December 8, 2021 | Los Angeles, CA, US | Introduction to Photogrammetry with Geordon Worley [Virtual] Dec. 2021 | Rust Los Angeles
- December 8, 2021 | Los Angeles, CA, US | Rust Computer Vision Project with Geordon Worley | Rust Los Angeles
- December 8, 2021 | Stuttgart, DE | Rust-Meetup | Rust Community Stuttgart
- December 9, 2021 | Columbus, OH, US | Second Thursdays: Monthly Meetup | Columbus Rust Society
- December 9, 2021 | London, UK | Rust London x TrueLayer Takeover & Christmas Party | Rust London User Group
- December 9, 2021 | Oslo, NO | Rust Oslo @ Rebel w/Carol (Nichols || Goulding)| Rust Oslo
- December 9, 2021 | San Diego, CA, US | San Diego Rust December 2021 Tele-Meetup | San Diego Rust
- December 10, 2021 | Chicago, IL, US | 8LU Keynote by Eric Smith - Write Your Game in Rust! | 8th Light University
- December 11, 2021 | Nairobi, KE | Rust Catchup 2021 | Rust Nairobi
- December 13, 2021 | Eugene, OR, US | Mondays - Book-Club - Rust Programming Language | Functional Programming - Eugene
- December 14, 2021 | South Padre Island, TX, US | Tuesdays - Book #24 - Rust for Rustaceans - Chapter 1 (session 2) | Los Gatos Reading Group (South Padre Island)
- December 14, 2021 | Seattle, WA, US | Monthly Meetup | Seattle Rust Meetup
North America
- December 14, 2021 | Minneapolis, MN, US | First Meetup | Minneapolis Rust Meetup Group
- December 14, 2021 | New York, NY, US | Presentation by Chelsea E. Manning: Rust on Arduino-style microcontrollers | Rust NYC
Europe
- December 3, 2021 | Moscow, RU | Rust Con | RustCon.ru
- December 9, 2021 | London, UK | Rust London x TrueLayer Takeover & Christmas Party | Rust London User Group
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
DeepSource
Clear
Pixy
Bionaut Labs
- Embedded Software Engineer (Senior) (Los Angeles, CA, US)
- Embedded Software Engineer (Junior) (Los Angeles, CA, US)
Metawork
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
v2 of the patch-series "to add support for Rust as a second language to the Linux kernel" was posted to LKML [..]
There have been several improvements to the overall Rust support since RFC and v2 described in the linked mail.
– Thorsten Leemhuis on twitter
llogiq unanimously suggested and voted that this be our quote for this week.
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