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
Official
Tooling
Newsletters
Observations/Thoughts
Learn Standard Rust
- [TR] Rust Turu
- A half-hour to learn Rust
- Rust - understanding traits 1
- That's so Rusty: Mutables
- [video] Choosing Rust - Intro to Rust and Ownership
Learn More Rust
- Linux System Call
fork()
in Rust - Peeking inside a Rust enum
- How to speed up the Rust compiler one last time
- Rust on Haiku: the Case of the Disappearing Deceased Threads
- C++ vs Rust: an async Thread-per-Core story
- Twistrs - Domain name enumeration library in Rust
- If you want performance, cheat!
- Deserializing JSON really fast
- Intercepting Zoom's encrypted data with BPF
- DISCLAIMER: This article uses methods that could be used illegally in many areas worldwide. Please do not use such methods illegally. The This Week in Rust team and the Rust project leadership are not responsible for any illegal activity by readers.
- Make A Language - Part Zero: Getting set up
- Make A Language - Part One: A basic parser
- Make A Language - Part Two: Whitespace support
- Let's build a singl binary gRPC server-client with Rust in 2020 - Part 3
- My Adventures in MMIO Abstraction
- I C and .so does Rust
- HTTP Status Codes With Rust
- [PL] CrabbyBird #2 Poruszanie kamerą
- [video] Using rust jni to call an external rust library in java
- [video] 1 - Basic Actix Web Server
- [video] 2 - Creating the Tables
- [video] 3 - Working with the Database
- [video] 4 - Getting the links
Project Updates
Miscellaneous
- Create an amazing Rust GitHub project in no time
- Leaving the Rust core team
- Threadripper meets rustc
- Understanding and Evolving the Rust Programming Language
- Path Trimming in Nightly Rust
- Steve Klabnik Interview - "Rust isn't afraid to be imperfect as long as we ship something useful"
- On finally learning to program at the age of 40
- [video] Iota Identity-Diff Macro - Live Stream
Crate of the Week
This week's crate is serde-query, an efficient query language for Serde.
Thanks to Vlad Frolov 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.
No issues were proposed for CfP.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
332 pull requests were merged in the last week
- inliner: avoid query cycles when optimizing generators
- diagnostics: shorten paths of unique symbols
- add
-Z proc-macro-backtrace
to allow showing proc-macro panics - suggest
if let x = y
when encounteringif x = y
- MIR peephole optimize {Ne, Eq}(_1, false) into _1
- miri: move panic payload state from Machine to Thread
- eliminate some other bound checks when index comes from an enum
- improve recovery on malformed
format!
call - specialize some collection and iterator operations to run in-place
- stabilize
deque_make_contiguous
- add
slice::check_range
- BTreeMap: introduce marker::ValMut and reserve Mut for unique access
- add
[T; N]::as_[mut_]slice
- implement
Seek::stream_position()
forBufReader
impl Rc::new_cyclic
- make
cow_is_borrowed
methods const - compiler-builtins: greatly improve division performance for u128 and other cases
- stdarch: bye bye MMX!
- stdarch: AVX512
- futures-rs: implement
FusedStream
forFuturesOrdered
- futures-rs: fix UB due to missing
'static
ontask::waker
- hashbrown: use the alloc crate on stable Rust
- hashbrown: remove
from_key_hashed_nocheck
'sQ: Hash
Rust Compiler Performance Triage
- 2020-09-08: 3 regressions, 0 improvements.
A few small compile-time regressions this week. The first was
#70793, which added some
specializations to the standard library in order to increase runtime
performance. The second was
#73996, which adds an option to
the diagnostics code to print only the names of types and traits when they are
unique instead of the whole path. The third was
#75200, which refactored part
of BTreeMap
to avoid aliasing mutable references.
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
Tracking Issues & PRs
- [disposition: merge]Add
[T; N]: TryFrom<Vec<T>>
(insta-stable) - [disposition: merge]Make some Ordering methods const
- [disposition: merge]Stabilize some Result methods as const
- [disposition: merge]Stabilize some Option methods as const
- [disposition: merge]Use implicit (not explicit) rules for promotability by default in
const fn
- [disposition: merge]Implement
Index
andIndexMut
for arrays - [disposition: merge]Tracking issue for
#[doc(alias = "...")]
New RFCs
No new RFCs were proposed this week.
Upcoming Events
Online
- September 9. East Coast, US - Rust East Coast Virtual Talks + Q&A
- September 11. Russia - Russian Rust Online Meetup
- September 16. Vancouver, BC, CA - Vancouver Rust - Rust Study/Hack/Hang-out night
- September 17. Linz, AT - Rust Linz - Rust Meetup Linz - Meaghan Lewis on Rust, Embedded Rust with Roland Ruckerbauer
- September 17. Berlin, DE - Berline.rs - Berlin Rust Hack and Learn
North America
- September 9. Atlanta, GA, US - Rust Atlanta - Grab a beer with fellow Rustaceans
- September 10. Lehi, UT, US - Utah Rust - The Blue Pill: Rust on Microcontrollers (Sept / Second Round)
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
It's amazing how frequent such "rare edge cases" can be. Especially when there are millions of people using billions of files originating from God know what operating systems. Far better things are checked properly if one want robust code. As Rust uses do.
Thanks to Edoardo Morandi for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.