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.
Updates from Rust Community
- Rust after the honeymoon
- Building the Fastest RaptorQ (RFC6330) Codec in Rust
- Learning Rust through open source and live code reviews
- My Mistakes Making a Canvas Based Game with Rust and WebAssembly
- A New Backend for Cranelift, Part 1: Instruction Selection
- Optional parameters in Rust
- Building an async-compatible actor system
- [video] Contract as Code as Contract: Using Rust to Unify Specification and Implementation
Learn Simple Rust
- Iterators in Rust
- Learn Rust by building the game Snake
- That's so Rusty! Fearless concurrency
- Making a Simple Calculator in Rust
- Patterns of fallible iteration
- [video] Learn Rust Together Part 5: Structs and Enums!
- [video] 3. #everyonecancontribute cafe: Gitpod & learning Rust
Learn More Rust
- Deploying a Rust HTTP server to DigitalOcean App Platform
- Make A Language - Part Eight: Function Definitions
- Supercharge your Electron apps with Rust
- [ZH] Build a Shoot 'em up game with framework Amethyst
- [video] Rust FFI: Microsoft Flight Simulator SDK Part 1
- [video] Fuzz Testing popular Rust library in 5 min using cargo-fuzz / libfuzzer
- Collect in Rust, Traverse in Haskell and Scala
- Proving that 1 + 1 = 2 in Rust
- What should I program?
- Getting back to C++ after Rust is a pain.
Call for Blog Posts
The Rust Core Team wants input from the community! If you haven't already, read the official blog and submit a blog post - it will show up here! Here are the wonderful submissions since the call for blog posts:
Crate of the Week
This week's crate is paste, a macro to concatenate identifiers (which would otherwise be nightly only).
Thanks to mark-i-m 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!
- Create a Rust-Client for SirixDB
- the-way: Highlight parameters in shell snippet when copying
- the-way: Replace copy_to_clipboard code with arboard
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
409 pull requests were merged in the last week
- resolve: improve "try using the enum's variant"
LitKind's byte buffer to use refcounted slice
- Fix span for unicode escape suggestion
- stdsimd: Use xor to implement
Rust Compiler Performance Triage
- 2020-10-13: 0 Regressions, 3 Improvements, 3 Mixed
Overall, fairly busy week, but without major regressions that need to be addressed.
See the full report for more.
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.
- RFC: Promote aarch64-unknown-linux-gnu to a Tier-1 Rust target
- Access to traits' associated functions and constants from trait objects
- [disposition: merge] stabilize union with 'ManuallyDrop' fields and 'impl Drop for Union'
- [disposition: merge] stop promoting union field accesses in 'const'
- [disposition: merge] passes:
check_attron more targets
- [disposition: merge] resolve: Do not put nonexistent crate
- [disposition: postpone]Tracking issue for experiments around coercions, generics, and Copy type ergonomics
- Octover 15. Berlin, DE - Rust Hack and Learn - Berline.rs
- October 20. Denver, CO, US - Rust Denver - Data Science with Rust
- October 21. New York, NY, US - A Journey into the Nucleus at Dropbox with Parker Timmerman - Rust NYC
- October 21. Vancover, BC, CA - Rust Study/Hack/Hang-out night - Vancouver Rust
- October 22. Edinburgh, UK - Fluence: interface-types for server-side WebAssembly modules - Rust Edinburgh
- October 27. Dallas, TX, US - Last Tuesday - Dallas Rust
- Lead Software Engineer at Stake Technologies (SG, Remote)
- Software Engineer at Stake Technologies (SG, Remote)
- Service Engineer [Rust] at Narrative (Auckland, NZ - Remote within New Zealand)
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Just because Rust allows you to write super cool non-allocating zero-copy algorithms safely, doesn’t mean every algorithm you write should be super cool, zero-copy and non-allocating.
Thanks to Nixon Enraght-Moony for the suggestion!