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
- Rust Foundation Included in Fastly's Fast Forward Program
 - Welcoming Seth Markle to the Rust Foundation Board
 
Newsletters
Project/Tooling Updates
- hyper Polish Period
 - Changelog #155
 - This Week in Fyrox
 - Bevy - Bevy 0.9
 - [video] Bevy 0.9 Release Train
 - Fornjot (code-first CAD in Rust) - Progress Report
 - What's new in SeaORM 0.10.x
 
Observations/Thoughts
- Error docs
 - Rust enum-match code generation
 - Implementation Details of async Rust
 - Stop writing Rust linked list libraries!
 - [video] Rust GCC Front-end - Philip Herron, David Faust
 - [video] Rust Is Boring (Why Rust?) [RUST-13]
 - [audio] cargo-auditable with Sergey Davidoff
 
Rust Walkthroughs
- Rust and C++ Interoperability
 - 4-Step Primer on Navigating Embedded Rust HAL Documentation
 - Five simple steps to use any Arduino C++ library in a Rust project
 - Tower, Episode 3: Readiness
 
Miscellaneous
Crate of the Week
This week's crate is lngcnv, a linguistic command line tool.
Thanks to Piotr Bajdek for the self-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.
- hackdose-sml-parser - automate generation of string and list types
 - hackdose-sml-parser - add more obis codes
 
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from the Rust Project
373 pull requests were merged in the last week
- add new tier-3 target 
loongarch64 - add tier 3 
no_std AArch64/x86_64support for the QNX Neutrino RTOS - promote 
{aarch64,i686,x86_64}-unknown-uefito Tier 2 - linker: refactoring and fixes to native library linking
 - limit efiapi calling convention to supported arches
 - implement the 
+whole-archivemodifier forwasm-ld - allow specialized const trait impls
 - parser: recover from using colon as path separator in imports
 - recover wrong-cased keywords that start items
 - resolve: more detailed effective visibility tracking for imports
 - emit error in 
collecting_trait_impl_trait_tyson mismatched signatures - fix auto-application of associated generic functions with placeholders
 - suggest 
is_somewhen we've foundOptionbut expectedbool - suggest calling the instance method of the same name when method not found
 - suggest removing unnecessary 
.to use a floating point literal - improve spans with 
use crate::{self} - tighten the 'introduce new binding' suggestion
 - fix 
rustc_parse_formatspans following escaped utf-8 multibyte chars - consider 
#[must_use]annotation onasync fnas also affecting theFuture::Output - better error message for HRTB error from generator interior
 #[test]: point at return type ifTerminationbound is unsatisfiedrustc_codegen_ssa: better code generation for niche discriminants- add support for custom mir
 - add the 
#[derive_const]attribute - delay 
include_bytesto AST lowering - don't normalize constants unless they need normalization
 - resolve lifetimes independently for each item-like
 - improve performance of 
rem_euclid()for signed integers - make 
Sizedcoinductive, again - make 
Hash,HasherandBuildHasher#[const_trait]and makeSipconstHasher - const Compare for Tuples
 - merge crossbeam-channel into 
std::sync::mpsc - specialize 
iter::ArrayChunks::foldfor TrustedRandomAccess iterators - stabilize integer logarithms
 - hashbrown: 
rawTable::allocation_info - backtrace: C/C++ module file and line number are not looked up: addr2line 0.18.0 fixes it
 - impl 
TryFrom<&[T]>for Simd - detect CPU features with Linux methods on Android for non-Intel CPUs
 - cargo: propagate change of artifact bin dep to its parent fingerprint
 - rustdoc: fix missing reexports' doc comments
 - rustdoc: use 
ThinVecandBox<str>to shrinkclean::ItemKind - bindgen: fix duplicated function names
 - bindgen: fix inline function identification
 - bindgen: handle the 
const struct *andstruct *patterns - clippy: 
fn_params_excessive_boolsMake it possible to allow the lint at the method level - clippy: 
result_large_errshow largest variants in err msg - clippy: add 
manual_is_ascii_checklint - clippy: add 
unnecessary_safety_doclint - clippy: Fix two 
needless_borrowfalse positives - clippy: avoid linting unsized mutable reference
 - clippy: fix 
explicit_auto_dereffalse positives - clippy: fix 
is_async_fnto checkFnKind::Method - clippy: fix 
never_loopfalse positive - clippy: fix 
vec-box-size-thresholdoff-by-one error - clippy: fix: 
cognitive_complexityfor async fn - clippy: make 
bool_to_int_with_ifa pedantic lint - clippy: make it clear that 
or_fun_callcan be a false positive - rust-analyzer: nest Cargo.lock under Cargo.toml in Code
 - rust-analyzer: fix 
tt::Punct's spacing calculation - rust-analyzer: add trait alias grammar to rust.ungram
 - rust-analyzer: check visibility of each path segment
 - rust-analyzer: fix hover in attributed items not preferring similar kinded tokens
 - rust-analyzer: fix item completions not working properly after unit structs and outline modules
 - rust-analyzer: fix panic when computing signature of generic 
FnOncecallable - rust-analyzer: fix r-a eagerly showing no discovered workspace errors
 - rust-analyzer: send status notification if there are no found workspaces
 - crates.io downloads: use 
recent_downloadsasdownloadsif it is higher 
Rust Compiler Performance Triage
A light week for triage. The biggest of the three regressions has a (hopeful) fix up already. The second biggest is a regression we are accepting for sake of correctness of incremental-compilation. The third regression is small and may well be removed as the type system internals are improved. max-rss seems stable.
Triage done by @pnkfelix. Revision range: 57d3c58e..96ddd32c
3 Regressions, 4 Improvements, 3 Mixed; 2 of them in rollups 40 artifact comparisons made in total
Call for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:
- No RFCs issued a call for testing this week.
 
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.
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
- [disposition: merge] Restrictions
 
Tracking Issues & PRs
- [disposition: merge] Remove drop order twist of && and || and make them associative
 - [disposition: merge] Unreserve braced enum variants in value namespace
 
New and Updated RFCs
Upcoming Events
Rusty Events between 2022-11-16 - 2022-12-14 🦀
Virtual
- 2022-11-16 | Virtual (Vancouver, BC, CA) | Vancouver Rust
 - 2022-11-17 | Virtual (Amsterdam, NL) | ITGilde Tech-Talks
 - 2022-11-17 | Virtual (San Francisco, CA, US) | Data + AI Online Meetup
 - 2022-11-17 | Virtual (San Francisco, CA, US) | WebAssembly North America
 - 2022-11-17 | Virtual (Stuttgart, DE) | Rust Community Stuttgart
 - 2022-11-21 | Virtual (Paris, FR) | Meetup Paris - École Supérieure de Génie Informatique (ESGI)
 - 2022-11-22 | Virtual (Berlin, DE) | Berlin.rs
 - 2022-11-24 | Virtual (Linz, AT) | Rust Linz
 - 2022-11-28 | Virtual | Rust Formal Methods Interest Group
 - 2022-11-29 | Virtual (Dallas, TX, US) | Dallas Rust
 - 2022-11-30 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
 - 2022-11-30 | Virtual (Munich, DE) | Rust Munich
 - 2022-12-01 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
 - 2022-12-06 | Virtual (Berlin, DE) | Berlin.rs
 - 2022-12-06 | Virtual (Buffalo, NY, US) | Buffalo Rust Meetup
 - 2022-12-07 | Virtual (Indianapolis, IN, US) | Indy Rust
 - 2022-12-08 | Virtual (Nürnberg, DE) | Rust Nuremberg
 - 2022-12-08 | Virtual (San Francisco, CA, US) | Data + AI Online Meetup
 - 2022-12-10 | Virtual | Rust GameDev
 - 2022-12-13 | Virtual (Rostock, DE) | Altow Academy
 - 2022-12-13 | Virtual (Saarbrücken, DE) | Rust-Saar
 - 2022-12-14 | Virtual (Boulder, CO, US) | Boulder Elixir and Rust
 
Asia
- 2022-11-22 | Tokyo, JP | Tokyo Rust Meetup
 
Europe
- 2022-11-16 | Paris, FR | Stockly
 - 2022-11-22 | Karlsruhe, DE | Rust Hack & Learn Karlsruhe
 - 2022-11-23 | Bratislava, SK | Bratislava Rust Meetup Group
 - 2022-11-24 | København, DK | Copenhagen Rust Group
 - 2022-11-28 | London, UK | Rust London User Group
 - 2022-11-30 | Amsterdam, NL | Rust Nederland
 - 2022-11-30 | Lille, FR | Rust Lille
 - 2022-11-30 | Milan, IT | Rust Language Milano
 - 2022-11-30 | Munich, DE + Virtual | Rust Munich
 - 2022-12-01 | Edinburgh, UK | Rust Edinburgh
 - 2022-12-07 | Zurich, CH | Rust Zurich
 - 2022-12-12 | Enschede, NL | Dutch Rust Meetup
 
North America
- 2022-11-29 | Austin, TX, US | ATX Rustaceans
 - 2022-12-08 | Columbus, OH, US | Columbus Rust Society
 
Oceania
- 2022-11-22 | Canberra, ACT, AU | Canberra Rust User Group
 - 2022-11-24 | Brisbane, QLD, AU | Rust Brisbane
 - 2022-12-08 | Melbourne, VIC, AU | Rust Melbourne
 
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.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
What you are essentially saying is: "Doctor, I'm writing C in Rust, and it hurts." To which the doctor will reply: "Then don't write C in Rust, and it won't hurt!"
– Árpád Goretity on rust-users
Thanks to Michael Bryan 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, bennyvasquez.
Email list hosting is sponsored by The Rust Foundation