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
- Rust Analyzer Changelog #36
- IntelliJ Rust: Updates for the 2020.2 Release
- Headcrab: July 2020 progress report
Newsletters
Observations/Thoughts
- Go vs Rust: Writing a CLI tool
- How to speed up the Rust compiler some more in 2020
- A Curious Tale of Rust TLS and Postgres in the Cloud
Learn Standard Rust
- Learning Rust: Mindsets and Expectations
- Understanding the Rust borrow checker
- Beginner's guide to Error Handling in Rust
- Rust Hashmaps Tutorial
- Blue Team Rust: What is "Memory Safety", really?
- How to use the Rust compiler as your integration testing framework
- A Comprehensive Tutorial to Rust Operators for Beginners
- What You Should Know About Unsigned, Signed Integers and Casting in Rust
- Memory safety in Rust - part 2
- A gentle introduction to assembly with rust
- Prevent Breaking Code Changes in Future Releases using
non exhaustive
enums in Rust - A Heaping Helping of Stacks
- Rust for a Pythonista #1: Why and When?
- [PT] Aprendendo Rust: 05 - Funções
- [RU] Rust: работа с потоками
- [video] Learning Rust by Working Through the Rustlings Exercises
Learn More Rust
- Creating Linux Packages for Rust Projects (1/2)
- Operating System development tutorials in Rust on the Raspberry Pi
- Reverse Engineering a USB Device with Rust
- A Simple Crud on Rust (With Rocket.rs and Diesel.rs)
- Some Learnings from Implementing a Normalizing Rust Representer
- Countdown problem in Rust
- Exploring Azure CosmosDB with Rust - Part 1
- Building Rust Web API with Warp and Diesel
- Microservices in Rust with Kafka
- Risc-V OS using Rust: Graphics
- Rust Traits: Defining Behavior
- Writing and publishing a Python module in Rust
- [video] Hypercore Protocol in Rust
- [video] Reasonable Coding 030 - HotStuff, a composable, no-nonsense document compiler (part 1)
Project Updates
Miscellaneous
- Video recording technology at RustFest
- [audio] The State of Rust 2 with Alex Chrichton
- [audio] The State of Rust with Steve Klabnik
- [video] Rusty Days 2020 - all videos
Crate of the Week
This week's crate is partial-io, a set of helpers to test partial, interrupted and would-block I/O operations.
Thanks to Kornel 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
326 pull requests were merged in the last week
- suppress debuginfo on naked function arguments
- normalize all opaque types when converting
ParamEnv
toReveal::All
- ensure stack when type checking and building MIR for large if expressions
- replace a recursive algorithm with an iterative one
- fix
#[track_caller]
shims for trait objects - make closures and generators
must_use
types BTreeMap::drain_filter
should not touch the root during iteration- add
str::
(r
)split_once
- add
Vec::spare_capacity_mut
- add
slice::array_chunks
- stabilize
const_type_id
- stabilize
Vec::leak
as a method - stabilize
Result::as_deref
andas_deref_mut
- make
Option::unwrap
unstably const - make
mem::size_of_val
andmem::align_of_val
unstably const - backtrace-rs: include source column numbers, where available
Rust Compiler Performance Triage
- 2020-08-03. 8 regressions, 2 improvements, 1 of them on rollups. 1 outstanding nag from last week.
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation 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
No Tracking Issues or PRs are currently in the final comment period.
New RFCs
Upcoming Events
Online
- August 5. Johannesburg, ZA - Johannesburg Rust Meetup - Monthly Joburg Rust Chat
- August 5. Dublin, IE - Rust Dublin - August Remote Meetup
- August 5. Buffalo, NY, US - Buffalo Rust Meetup - Rust User Group
- August 5. Indianapolis, IN, US - Indy Rust - Indy.rs with Social Distancing
- August 6. Linz, AT - Rust Meetup Linz - Kick Off
- August 6. Berlin, DE - Berline.rs - Rust Hack and Learn
- August 11. Seattle, WA, US - Seattle Rust Meetup - Monthly meetup
- August 11. Saarbrücken, DE - Rust-Saar Meetup
3u16
- August 13. San Diego, CA, US - San Diego Rust - August 2020 Tele-Meetup
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
Empowering is the perfect word to describe Rust in 2020. What used to be a rough adventure with many pitfalls has turned into something beautiful, something that can lift your spirit. At least, that’s what it did for me.
Thanks to Henrik Tougaard for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.