Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. 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.
Check out this week's This Week in Rust Podcast
Updates from Rust Community
Official
Tooling
Newsletters
Observations/Thoughts
- Why Rust is a great fit for embedded software
- Why Rust's Unsafe Works
- Rust RwLock and Mutex Performance Oddities
- The most exciting journey of 2020
- The smooth resize test
- "Rust does not have a stable ABI"
- Rust Review
- Rust vs C++: A JS/TS Developer's Perspective
- Comparative Unsafety
- Code Smell: Concrete Abstraction
- Against Glob Imports
Learn Standard Rust
- Lifetimes in Rust
- Learning Rust: The Compiler is your Friend
- I am a Java, C#, C or C++ developer, time to do some Rust
- Frustrated? It's not you, it's Rust
- Async Unicorns love Rust
- Who Builds the Builder?
- Introduction to Rust
- Rust for Beginners – Get Started with the Most Loved Programming Language
- First steps with WebAssembly in Rust
- Variables and memory management
- WebAssembly Without The Browser Part 1
- How I Learned to Stop Fighting the Borrow Checker and Love Dirty Structs
- Software Development Languages: Rust
- [ES] Trait Objects para hacer Dynamic Dispatch en Rust
- [ES] Que es Ownership en Rust?
- [ES] Que es Ownership en Rust? Parte 2
- [PT] Aprendendo Rust: 07 - Regiões da memória usadas pela Rust
Learn More Rust
- Linux Packages For Rust (2/3) - Building with GitHub Actions using Custom Actions and Docker Container Images
- Temporarily opt-in to shared mutation
- RISC-V OS using Rust: Input Devices
- Rusty Chains: A Basic Blockchain Implementation Written in Pure Rust
- Error recovery with parser combinators (using nom)
- My first smart contract in Rust on Elrond VM
- Writing an Emacs module in Rust
- Exploring Azure CosmosDB with Rust - Part 2
- A whirlwind tour of the Mender client architecture using Rust
Project Updates
- Run Rust on your embedded device from VSCode in one click
- Control Flow Guard for Clang/LLVM and Rust
- Cranelift can now compile rustc - giving nearly 7x faster compilations than LLVM!
- Nightly stdlib docs now document all keywords!
- Faster development with tiny bounties
Miscellaneous
- RustFest goes Global
- Oxide: The Essence of Rust
- Why I don't believe in pure functional programming anymore
- The merits of Rust for SSI and IAM software
- Using Long Paths in Windows and Rust
- Stackage for Rust
- Why We're Bringing Astropad Cross-Platform with Rust
- Rewriting Pushpin's connection manager in Rust
- [audio] AreWePodcastYet - 06 Jonathan Turner
Crate of the Week
This week's crate is cargo-c, a cargo subcommand to build and install C-ABI compatibile dynamic and static libraries.
Thanks to Zicklag for the suggestion!
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 Rust Core
345 pull requests were merged in the last week
- use existing
infcx
when emitting trait impl diagnostic - detect JS-style
===
and!==
and recover - detect likely
for foo of bar
JS syntax - move stack size check to
const_eval
machine - add
array
lang item and[T; N]::map(f: FnMut(T) -> S)
- remove branch in optimized
is_ascii
- constified
str::from_utf8_unchecked
- hard way to respect
BTreeMap
's minimum node length - BTreeMap: purge innocent use of
into_kv_mut
- hashbrown: implement
FusedIterator
andsize_hint
forDrainFilter
- rustdoc: don't print "const" keyword on non-nightly build if
rustc_const_unstable
is used on the item
Rust Compiler Performance Triage
- 2020-08-17. 4 regressions, 3 improvements, 4 mixed bags.
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 are currently in the final comment period.
Tracking Issues & PRs
- [disposition: merge]Stabilize Range[Inclusive]::is_empty
- [disposition: merge] stabilize ptr_offset_from
New RFCs
No new RFCs were proposed this week.
Upcoming Events
Online
North America
Asia Pacific
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
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
As Dave Herman always told me, “macros are for when you run out of language”. If you still have language left—and Rust gives you a lot of language—use the language first.
Thanks to Nixon Enraght-Moony for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.