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
News & Blog Posts
- Making the Tokio scheduler 10x faster.
- How to speed up the Rust compiler some more in 2019.
- The node experiment - exploring async basics with Rust.
- Debugging Rust code in CLion.
- My favorite rust function
std::mem::drop
. - Vulnerability in sodiumoxide: generichash::Digest::eq always return true.
- RISC-V OS using Rust: Communications.
- Migrating a crate from futures 0.1 to 0.3.
- Adventures in motion control: The communications system part 2.
- Announcing Rustup 1.20.0.
- New VxWorks release supports Rust.
- AWS’ sponsorship of the Rust Project.
Crate of the Week
This week, we don't have one, nor two, but three crates of the week! There's Watt, a fast WASM-based proc-macro runtime, Anyhow, yet another error handling crate and spotify-tui, a console user interface for Spotify.
Thanks to Aloso, zicklag and Vikrant 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.
- [good first issue] async-std: Add Stream::throttle.
- [good first issue] async-std: Add Stream::timeout.
- [good first issue] async-std: Add Future::delay.
- async-std: [tracking] streams.
- [good first issue] tracing: core: add
dispatcher::set_default
.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
302 pull requests were merged in the last week
- Add support for
const unsafe? extern fn
- Split non-CAS atomic support off into
target_has_atomic_load_store
- deriving: Avoid dummy Span on an artificial
type_ident
path - Print lifetimes with backticks
- Fix suggested bound addition diagnostic
- Note when a mutable trait object is needed
- Use structured suggestion for removal of
as_str()
call - Fix const generic arguments not displaying in types mismatch diagnostic
- Improve message when attempting to instantiate tuple structs with private fields
- Suggest dereferencing boolean reference when used in
if
orwhile
- When suggesting assoc function with type params, include turbofish
- self-profiling: Add events for everything except trait selection
- Avoid
SmallVec::collect
- Speed up
TokenStream
concatenation - Implement
Clone::clone_from
forVecDeque
- Stabilize
slice::repeat
- Stabilize
mem::take
- Implement (
HashMap
)Entry::insert
- improve performance of signed
saturating_mul
- dist: minimize the
rust-std
component
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
- [disposition: postpone] Tighter coupling of Cargo workspaces.
Tracking Issues & PRs
- [disposition: merge] Stabilize RFC 2451, re-rebalance coherence.
- [disposition: merge] make is_power_of_two a const function.
New RFCs
Upcoming Events
Asia Pacific
- Oct 19. Chennai, IN - Rust Chennai - Monthly meetup.
- Oct 26. Tokyo, JP - Rust.Tokyo 2019.
- Oct 26. Taipei, TW - Rust Taiwan Meetup.
Europe
- Oct 17. Barcelona, ES - BcnRust Meetup.
- Oct 18. Stuttgart, DE - Rust Meetup Hack and Learn.
- Oct 19-23. Rome, IT - Rust+GNOME 2019 Hackfest #6.
- Oct 23. Stockholm, SE - Stockholm Rust - Rust Meetup @Embark Studios.
- Oct 24. Turin, IT - Mozilla Torino - Gruppo di studio Rust.
- Oct 24. Vienna, AT - Rust Vienna - Rust Townsquare Gathering Oktober.
- 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.
North America
- Oct 18 & 19. Dayton, OH, US - Rust Belt Rust.
- Oct 23. Portland, OR, US - PDXRust - Hack Night.
- Oct 23. Mesa, AZ, US - Desert Rust - Rust: lightning talks.
- 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.
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 Blockchain Engineer at Nervos, Hangzhou, CN (Remote available).
- Rust/Core Developer at Parity, Berlin, DE (Remote available).
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
If the Rust community has an ethos, it's that software should have strong static typing, but people should have soft dynamic typing.
Thanks to Kyle Strand for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.