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
- [Inside] Splitting the const generics features
- [Inside] 1.55.0 pre-release testing
- rust-analyzer Changelog #93
- This week in Fluvio #5: the programmable streaming platform
- rustc_codegen_gcc: Progress Report #3
- This week in Datafuse #6
- Announcing Relm4 v0.1
- SixtyFPS (GUI crate) weekly report for 6th of September 2021
- Why Rust for offensive security
- Had a blast porting one of my serverless applications from Go to Rust - some things I learned
- Broken Encapsulation
- Faster Top Level Domain Name Extraction with Rust
- Rust programs written entirely in Rust
- Fast Rust Builds
- Virtual Machine Dispatch Experiments in Rust
- Rust Verification Tools - Retrospective
- How to avoid lifetime annotations in Rust (and write clean code)
- Using SIMD acceleration in Rust to create the world's fastest
- Overview of the Rust cryptography ecosystem
- Rustacean Principles
- Writing software that's reliable enough for production
- Plugins in Rust: Getting Started
- A Gopher's Foray into Rust
- Building a reliable and tRUSTworthy web service
- [audio] The Rustacean Station Podcast - Rust in cURL
- The Why and How of Rust Declarative Macros
- Build a secure access tunnel to a service inside of a Remote Private Network, using Rust
- Rust on RISC-V BL602: Rhai Scripting
- Rudroid - Writing the World's worst Android Emulator in Rust
- Hexagonal architecture in Rust #3
- Hexagonal architecture in Rust #4
- Postgres Extensions in Rust
- Let's overtake go/fasthttp with rust/warp
- How we built our Python Client that's mostly Rust
- Combining Rust and C++ code in your Bela project
- Data-oriented, clean&hexagonal architecture software in Rust - through an example project
- Let's build an LC-3 Virtual Machine
- How to think of unwrap
- Learning Rust: Interfacing with C
- How to build a job queue with Rust and PostgreSQL
- [ID] Belajar Rust - 02: Instalasi Rust
- [video] Crust of Rust: async/await
- [video] Concurrency in Rust - Sharing State
- [video] Setting up an Arduino Project using Rust
- Unity files patent for ECS in game engines that would probably affect many Rust ECS crates, including Bevy's
- Rust 2021 celebration and thanks
- Rust on RISC-V BL602: Rhai Scripting
- Wanted: Rust sync web framework
- [audio] Rust 2021 Edition
Crate of the Week
Sadly, we had no nominations this week. Still, in the spirit of not leaving you without some neat rust code, I give you gradient, a command line tool to extract gradients from SVG, display and manipulate them.
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!
- Rust for the Polyglot Programmer - a guide in need of review by and feedback from the Rust Community
- Survey - How People Use Rust
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 Rust Core
300 pull requests were merged in the last week
- update const generics feature gates
~constbounds on trait assoc functions
- emit specific warning to clarify that
#[no_mangle]should not be applied on foreign statics or functions
- fix 2021 dyn suggestion that used code as label
- warn when
[T; N].into_iter()is ambiguous in the new edition
- detect bare blocks with type ascription that were meant to be a struct literal
- use right span in prelude collision suggestions with macros
- improve structured tuple struct suggestion
- move global analyses from lowering to resolution
fmt::Formatter::pad: don't call
chars().count()more than one time
carrying_mulmethods to integers
- compiler-builtins: optimize
- futures: add
- futures: correcting overly restrictive lifetimes in vectored IO
- cargo: stabilize 2021 edition
- cargo: improve error message when unable to initialize git index repo
- clippy: add the
- rustdoc: clean up handling of lifetime bounds
- rustdoc: don't panic on ambiguous inherent associated types
- rustdoc: box
GenericArg::Constto reduce enum size
- rustdoc: display associated types of implementors
Rust Compiler Performance Triage
A busy week, with lots of mixed changes, though in the end only a few were deemed significant enough to report here.
Triage done by @pnkfelix. Revision range: fe379..69c4a
3 Regressions, 1 Improvements, 3 Mixed; 0 of them in rollups 57 comparisons made in total
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.
- [disposition: close] Proposal: Else clauses for for and while loops
- [disposition: merge] Scrape code examples from examples/ directory for Rustdoc
- [disposition: merge] Rust-lang crate ownership policy
Tracking Issues & PRs
- [disposition: merge] Deprecate array::IntoIter::new
- [disposition: merge] Partially stabilize array_methods
- [disposition: merge] Tracking issue Iterator map_while
- September 8, 2021, Denver, CO, US - Rust Q&A - Rust Denver
- September 14, 2021, Seattle, WA, US - Monthly Meetup - Seattle Rust Meetup
- September 15, 2021, Vancouver, BC, CA - Considering Rust - Vancouver Rust
- September 16, 2021, Berlin, DE - Rust Hack and Learn - Berline.rs
- September 18, 2021, Tokyo, JP - Rust.Tokyo 2021
- September 8, 2021, Atlanta, GA, US - Grab a beer with fellow Rustaceans - Rust Atlanta
- September 9, 2021, Pleasant Grove, UT, US - Rusty Engine: A 2D game engine for learning Rust with Nathan Stocks (and Pizza)
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.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
In Rust, soundness is never just a convention.
Thanks to Riccardo D'Ambrosio for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.