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
News & Blog Posts
- I made a NES emulator in Rust using generators.
- Where rustc spends its time.
- 2019 compiler roadmap progress.
- Update on const generics progress.
- Asynchronous destructors.
- A tiny, static, full-text search engine using Rust and WebAssembly.
- MicroRust: discover the world of microcontrollers through Rust on the BBC micro:bit.
- Dealing with process termination in Linux.
- The embedded WG's operating system tutorials rewrite added support for the Raspberry Pi 4.
- Adventures in motion control: simple automation sequences
- Programming Servo: shipping message-ports(via a detour into Spectre).
- Rotary encoders in embedded Rust.
Crate of the Week
This week's crate is grubbnet, a TCP client/server library for networked applications and games.
Thanks to Dooskington 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!
Some of these tasks may also have mentors available, visit the task page for more information.
- Clippy: Passing mutable references.
- rust-bindgen: Add --symbol-prefix flag.
- [good first issue] Spirit: Write a tutorial for Spirit. Spirit is a helper to make creating and configuring unix daemons easier.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
353 pull requests were merged in the last week
- Stabilize proc macros generating
needs_dropfor all zero-sized arrays
- Remove custom
- Optimize dropck
- More symbol cleanups
- Avoid unnecessary arena allocations in
- Avoid unnecessary
- expand: Simplify expansion of derives
- Fix suggestion to constrain trait for method to be found
- syntax: add parser recovery for intersection- / and-patterns
p1 @ p2
- Reducing spurious unused lifetime warnings
- Bring attention to suggestions when the only difference is capitalization
- Use structured suggestion for restricting bounds
- Fix zero-size uninitialized boxes
- Add check for overlapping ranges to unreachable patterns lint
- Use more fine grained locks for the dep graph
canonicalize_const_varleaking inference variables
- mir-opt: Improve SimplifyLocals pass so it can remove unused consts
- Improve error message for APIT with explicit generic arguments
- Remove unreachable unit tuple compare binop codegen
- Avoid ICE when
include!is used by stdin crate
- hashbrown: Remove most
- Always inline
align_of} in debug builds
- Avoid realloc in
BTreeSetsymmetric_difference & union optimized
- cargo: Allow
--all-featuresin root of virtual workspace
- rustup install: add
--profileflag to override profile
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.
No RFCs are currently in final comment period.
- [disposition: merge] Tracking issue for todo! macro.
- [disposition: merge] Tracking issue for floats ↔ bytes conversions.
- [disposition: merge] Stabilize RFC 2451, re-rebalance coherence.
- [disposition: merge] [rustdoc] stabilize cfg(doctest).
- [disposition: merge] Stabilize nested self receivers in 1.40.0.
- [disposition: merge] Stabilize
- [disposition: merge] Stabilize
- Nov 6. Johannesburg, ZA - Johannesburg Rust Meetup - informal discussions on topics related to the language.
- Oct 26. Tokyo, JP - Rust.Tokyo 2019.
- Oct 26. Taipei, TW - Rust Taiwan Meetup.
- Oct 29. Sydney, AU - Rust Sydney - Meetup 18.
- Nov 4. Auckland, NZ - Rust AKL - Introduction to Rust (part 2 of 3).
- Oct 28. Zurich, CH - Rust Zurich - October Meetup: Claudia Saxer – 66 hours of Rust.
- Oct 28. Gouda, NL - Rust Nederland - Rust - Talks & Demos.
- Oct 28. London, GB - Rust London User Group - LDN Talks October 2019.
- Oct 30. Berlin, DE - OpenTechSchool Berlin - Rust Hack and Learn.
- Oct 30. Copenhagen, DK - Copenhagen Rust Hack Night #19.
- Nov 9 & 10. Barcelona, ES - RustFest Barcelona 2019.
- Oct 28. Durham, NC, US - Triangle Rustaceans - Project Night & Lightning Talks.
- Oct 29. Dallas, TX, US - Dallas Rust - Last Tuesday.
- Oct 29. Chicago, IL, US - Chicago Rust Meetup - Entity Component Systems: An Intro To The Specs Crate Using Roguelikes.
- Oct 30. San Francisco, CA, US - Rust in Blockchain Workshop Day (SFBW)
- Oct 30. Santa Clara, CA, US - Rust Bay Area - [@ Intel Santa Clara] Security with Rust & SGX + Life of an Async fn.
- Oct 30. Vancouver, BC, CA - Vancouver Rust meetup.
- Nov 6. Indianapolis, IN, US - Indy.rs.
- Rust Engineer at Provable, London, GB (Remote available).
- Rust Senior Developer at Token, Palo Alto, CA, US.
- Software Manager at Georg Fischer Signet, El Monte, CA, US.
- Associate Software Engineer at Georg Fischer Signet, El Monte, CA, US.
- Rust/Core Developer at Parity, Berlin, DE (Remote available).
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Rust helped me grasp concepts I should have known when writing C++
Thanks to mmmmib for the suggestion!