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.
Updates from Rust Community
No newsletters this week.
Official
Tooling
Observations/Thoughts
- Fearless concurrency: how Clojure, Rust, Pony, Erlang and Dart let you achieve that.
- Shock Result<>?: Rust faster than Python in one test of file parsing
- Building a Recipe Manager - Part 2 - Druid Experience Report
- No, C++ still isn't cutting it.
- A pitfall of Rust's move/copy/drop semantics and zeroing data
- Proving that 1 + 1 = 10 in Rust
- Study of std::io::Error
- Fun With Rust's Traits
Learn Simple Rust
- Arrays, vectors and slices in Rust
- Building Your Own Error Type: Part 1
- Lifetimes in Rust
- Piece by Piece: Write Readable Rust Code
- Are out parameters idiomatic in Rust?
- Non-Generic Inner Functions
- Creating a Snake Clone in Rust, with Bevy
- Create Your Own PineTime Watch Face in Rust... And Publish on crates.io
- Either Types for Rust
- Rust syntax: What is the questionmark?
- Private Methods on a Public Trait
- Learn Rust with Benford's Law
- How to Write Hygienic Rust Macros
- [video] Rust Linz, October 2020 - Valentin Tolmer - How not to rely on inheritance
Learn More Rust
- Building a runtime reflection system for Rust 🦀️ (Part 2)
- Compile Rust for Raspberry Pi ARM
- Basic non-blocking IO using epoll in Rust
- Debugging async generator errors in Rust
- [video] (Live Coding) Audio adventures in Rust: Spotify integration
- [video] Rust Linz, October 2020 - Matthias Heiden - Writing a Kernel Driver with Rust
Project Updates
- Announcing Tokio 0.3 and the path to 1.0
- oso, an open-source policy engine for authorization written in Rust, released version 0.7.0 of their authorization library for Rust projects!
- ⚡️ Dotenv-linter v2.2.0: find and fix problems in .env files
- Version 0.3.0 of cargo-wipe has been released
Miscellaneous
- A new look, tickets and what's to come
- ICU4X Project Announcement
- Kata Containers rewritten in Rust gets a major speed boost
- Assorted thoughts on zig (and rust)
- Flask Creator Armin Ronacher Interview
- A recipe for start using Rust actix-web and launch chrome 🚀
- Sailfish OS 3.4 Released with Experimental Rust Support, Finally Eyeing 64-bit ARM
- Create Your Own PineTime Watch Face in Rust... And Publish on crates.io
- Getting started with Datalog & Rust for program analysis
- Three open source Sonos projects: efficient embedded development in Rust
Crate of the Week
This week's crate is icu4x, the Unicode Consortium's official crate for dealing with i18n in resource constrained environments.
Thanks to Willi Kappler 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
398 pull requests were merged in the last week
- make set_span take
mut self
- resolve: further improvements to "try using the enum's variant" diagnostic
min_const_generics
diagnostics improvements- make sure arenas don't allocate bigger than
HUGE_PAGE
- make
ObligationForest
more efficient - add
std::thread::available_concurrency
- remove
shrink_to_fit
from defaultToString::to_string
implementation - add
str::
{Split
,RSplit
,SplitN
,RSplitN
,SplitTerminator
,RSplitTerminator
,SplitInclusive
}::as_str
methods - liballoc:
VecDeque
: Add binary search functions - BTreeMap: fix gdb provider on
BTreeMap
with ZST keys or values - hashbrown: remove the need for unwrap when using
ProbeSeq
Rust Compiler Performance Triage
- 2020-10-21: 4 Regressions, 7 Improvements, 0 Mixed
See the full report for more.
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
- RFC: Promote aarch64-unknown-linux-gnu to a Tier-1 Rust target
- YieldSafe auto trait
- Access to traits' associated functions and constants from trait objects
- Variadic tuples
- RFC for a match based surface syntax to get pointer-to-field
Tracking Issues & PRs
- [disposition: merge] Allow making
RUSTC_BOOTSTRAP
conditional on the crate name - [disposition: merge] stop promoting union field accesses in 'const'
- [disposition: merge] passes:
check_attr
on more targets - [disposition: merge] Stabilize
Poll::is_ready
andis_pending
as const
New RFCs
No new RFCs were proposed this week.
Upcoming Events
Online
- October 22. Edinburgh, UK - Fluence: interface-types for server-side WebAssembly modules - Rust Edinburgh
- October 27. Dallas, TX, US - Last Tuesday - Dallas Rust
- October 29. Berlin, DE - Rust Hack and Learn - Berline.rs
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
- Senior Back End Engineer at Hopin (Remote)
- Backend Engineer - Rust at Kraken (Remote)
- Senior Backend Engineer - Rust at Kraken (Remote)
- Senior Full Stack Engineer - Rust at Kraken (Remote)
- Software Engineer - Trading Technology (Rust) at Kraken (Remote)
- Rust Engineer, Desktop GUI - Cryptowatch at Kraken (Remote)
- Backend Engineer, Kraken Futures - Rust at Kraken(Remote)
- Full remote Rust developer, long-term contract (French CDI) at Massa Labs (Remote)
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
And it's true that a lot of stuff requires a "sufficiently smart compiler" but really it's 2020, if your compiler isn't serving you breakfast in bed you need to be upping your expectations.
Thanks to Josh Triplett for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.