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.
Check out this week's This Week in Rust Podcast
Updates from Rust Community
- 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
- 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
- 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!
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
infcxwhen emitting trait impl diagnostic
- detect JS-style
- detect likely
for foo of barJS syntax
- move stack size check to
arraylang item and
[T; N]::map(f: FnMut(T) -> S)
- remove branch in optimized
- hard way to respect
BTreeMap's minimum node length
- BTreeMap: purge innocent use of
- hashbrown: implement
- rustdoc: don't print "const" keyword on non-nightly build if
rustc_const_unstableis used on the item
Rust Compiler Performance Triage
- 2020-08-17. 4 regressions, 3 improvements, 4 mixed bags.
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.
No RFCs are currently in the final comment period.
- [disposition: merge]Stabilize Range[Inclusive]::is_empty
- [disposition: merge] stabilize ptr_offset_from
No new RFCs were proposed this week.
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!