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
- Should we trust Rust with the future of systems programming?
- Optionality in the type systems of Julia and Rust
- Migrating from quick-error to SNAFU: a story on revamped error handling in Rust
- Go use those Traits
- Starframe devlog: Architecture
- Event Chaining as a Decoupling Method in Entity-Component-System
- Rust serialization: What's ready for production today?
- rust vs scripted languages; a short case study
- [DE] Entwicklung: Warum Rust die Antwort auf miese Software und Programmierfehler ist
- [video] Is Rust Used Safely by Software Developers?
Learn Standard Rust
- Ownership in Rust, Part 1
- Ownership in Rust, Part 2
- Learning Rust 1: Install things and read a file
- Learning Rust 2: A Tiny Database is Born
- That's so Rusty: Ownership
Learn More Rust
- As above, so below: Bare metal Rust generics 2/2
- Halite III Bot Development Kit in Rust
- Zero To Production #3.5: HTML forms, Databases, Integration tests
- Objective-Rust
- Building web apps with Rust using the Rocket framework
- Writing an asynchronous MQTT Broker in Rust - Part 3
- Multiple Thread Pools in Rust
- Type-directed metaprogramming in Rust
- Generating static arrays during compile time in Rust
- Let's build a single binary gRPC server-client with Rust in 2020 - Part 2
- How to use Rust + WebAssembly to Perform Serverless Machine Learning and Data Visualization in the Cloud
- Fireworks for your terminal
- Serverless Data Ingestion with Rust and AWS SES
- Box Plots at the Olympics
- Fixing include_bytes!
- Generating static arrays during compile time in Rust
- [PL] CrabbyBird #1 O tym, jak animować postać gracza
- [video] FLTK Rust: Creating a music player with customized widgets
Project Updates
- This August in my database project written in Rust
- Using Rust for Kentik's New Synthetic Monitoring Agent
- AWS introduces Bottlerocket: A Rust language-oriented Linux for containers
- Using
cargo test
for embedded testing withpanic-probe
- Headcrab: August 2020 progress report
- Rust Analyzer 2020[..6] Financial Report
Miscellaneous
- Avoid Build Cache Bloat By Sweeping Away Artifacts
- const_fn makes it too easy to do mandelbrots
- Linux Developers Continue Evaluating The Path To Adding Rust Code To The Kernel
- Supporting Linux kernel development in Rust
-
[video] LPC 2020 - LLVM MC
Crate of the Week
This week's crate is GlueSQL, a SQL database engine written in Rust with WebAssembly support.
Thanks to Taehoon Moon 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.
- Database in Rust is looking for contributors
- Docs.rs is looking for help adding a changelog
- Gooseberry has several good first issues with mentoring available
- Diskonaut - Option to delete without confirmation?
- Diskonaut - Feature: only show "(x = Small files)" legend when there are small files on the screen
- Diskonaut - Feature: error reporting with clean stacktraces
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
- point to a move-related span when pointing to closure upvars
- abort when foreign exceptions are caught by
catch_unwind
- new pass to optimize
if
conditions on integrals to switches on the integer - suggest
mem::forget
ifmem::ManuallyDrop::new
isn't used - improve error message when typo is made in
format!
- allow reallocation to different alignment in
AllocRef
- add some avx512f intrinsics for mask, rotation, shift
- make some
Ordering
methods const - stabilize {
Range
,RangeInclusive
}::is_empty
- get rid of bounds check in
slice::chunks_exact()
and related functions - stdarch: avx512
- hashbrown: make
with_hasher
functions const fn - hashbrown: implement
replace_entry_with
- clippy: add a lint for an async block/closure that yields a type that is itself awaitable
- use
rustc_lexer
for rustdoc syntax highlighting - report an ambiguity if both modules and primitives are in scope for intra-doc links
- rustdoc: improve rendering of crate features via
doc(cfg)
- docs.rs: separate metadata parsing into a library
Rust Compiler Performance Triage
- 2020-08-31: 1 regression, 2 improvements.
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
#[cfg(panic = '...')]
- [disposition: merge]Allow Weak::as_ptr and friends for unsized T
- [disposition: merge]Update stdarch
- [disposition: merge]Tracking issue for #[doc(alias = "...")]
New RFCs
Upcoming Events
Online
- September 8. Saarbrücken, DE - Rust-Saar Meetup -
3u16.map_err(...)
- September 8. Seattle, WA, US - Seattle Rust Meetup - Monthly meetup
- September 9. East Coast, US - Rust East Coast Virtual Talks + Q&A
- September 11. Russia - Russian Rust Online Meetup
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)
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 Backend Engineer - Rust at Kraken (Remote US, Remote EMEA)
- Backend Engineer, Data Processing – Rust at Kraken (Remote US, Remote EMEA)
- Backend Engineer - Rust at Kraken (Remote US, Remote EMEA)
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
When the answer to your question contains the word "variance" you're probably going to have a bad time.
Thanks to Michael Bryan for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.