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
- Async interviews: my take thus far
- Multi-threaded HTTP/WebSocket server in Rust.
- Cheating Rank-n with Traits
- Understanding Memory and Thread Safety Practices and Issues in Real-World Rust Programs
- A beginners guide to gRPC with Rust
- Setup Anaconda, Jupyter, and Rust
- Teleforking a process onto a different computer!
- Stubbing out WASI manually in Rust
- Rust Analyzer - Changelog #22
- IntelliJ Rust changelog #121
- Type-level programming in Rust
- Rust at FullStory, Part 2: A Look Inside Our Mobile SDK
- Notes on Parsing in Rust
- Create a blazingly fast REST API in Rust (Part 1/2)
- The Safety Boat: Kubernetes and Rust
- From Pratt to Dijkstra
- Learning embedded Rust by building RISC-V-powered robot - Part 4
- How to write CRaP Rust Code
- Rust concurrency: a streaming workflow, served with a side of back-pressure.
- Writing a Python module in Rust using PyO3
- Creating a Robust, Reusable Link-Checker
- [video] Crust of Rust: Declarative Macros
- [video] Rust Stream: String it All Together!
- [video] Educational Rust live coding - Building a git CLI
- [video] Maximum Sum of Subarrays (Leetcode) in Rust
- [video] WASM + Rust
- [video] Concurrency in Rust with Async/Await
- [video] Rust and Tell Berlin Meetup - April 2020 [video]
- [video] Rust Zürisee, April: cargo crev and cargo audit
Crate of the Week
This week's crate is winrt, Microsoft's Rust/WinRT language projection.
Thanks to JLalu 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.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
- clap-rs: Implement and Derive common traits
- Boa has several issues marked "easy", "good first issues", and "help wanted"
- Tokio: Non-consume method to wait for new messages on watch channel
- Tokio: Add is_closed to mpsc channels
- Tokio: Unicode characters are split when writing to windows terminal
- Tokio: select! with one branch causes a clippy error
- Stick: Call for Participation - Test More Joysticks On Linux
Updates from Rust Core
372 pull requests were merged in the last week
- implement RFC #2523,
- have the per-query caches store the results on arenas
- avoid duplicating code for each query
dyn Traitin patterns
- fix wrong argument in autoderef process
try_intoif possible with int types
- tweak some suggestions in
- add message for resolution failure because wrong namespace
- point at the return type on
.into()failure caused by
;or assignment to drop borrows in tail exprs
- on type mismatch involving associated type, suggest constraint
- minimize parameter of
- remove some
Vecallocations to improve performance
Unreachableterminators unconditionally in const-checking
Downcastprojections unconditionally in const-checking
- added MIR constant propagation of Scalars into function call arguments
- Miri: unleash all feature gates
- use existing framework for backward dataflow analyses
- add Read/Write::can_read/write_vectored
Tinstead of generic arg
truncate: drop using raw slice
- hashbrown: mark
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.
No RFCs are in final comment period this week
- [disposition: merge] Tracking issue for RFC 2432, "Allow
- [disposition: merge] Tracking issue for std::sync::Once poisoning
- May 6. Portland, OR, US - PDXRust - NES Emulation in Rust.
- May 6. Indianapolis, IN, US - Indy.rs - Rust Meetup.
- May 6. Johannesburg, ZA - Johannesburg meetup
- May 12. Seattle, WA, US - Seattle Rust Meetup
- May 14. San Diego, CA, US - San Diego Rust
- May 14, Berlin, DE - Berlin Rust Hack and Learn
- May 20. Vancouver, BC, CA - Vancouver Rust - Rust Study/Hack/Hang-out night.
- May 13. Vancouver, BC, CA - Vancouver Rust Meetup
- May 14. Columbus, OH, US - Columbus Rust Society - Monthly Meeting.
- Backend Engineer, Data Processing - Kraken - Remote
- Backend Engineer, Futures - Kraken - Remote
- Sr. Software Engineer - Distributed Systems - DFINITY - Palo Alto, CA or San Francisco, CA
- Sr. Software Engineer - Distributed Systems - DFINITY - Zurich, CH
- Sr. Software Engineer - Infrastructure and Tools - DFINITY - Palo Alto, CA or San Francisco, CA
- Sr. Software Engineer - Networking - DFINITY - Palo Alto, CA or San Francisco, CA
- Sr. Software Engineer - Systems - DFINITY - Palo Alto, CA or San Francisco, CA
- Sr. Software Engineer - Systems - DFINITY - Zurich, CH
- Software Engineer - SDK - DFINITY - Palo Alto, CA or San Francisco, CA
- Software Architect - Applied Crytography - Ockam - Remote or San Francisco
- Senior Software Development Engineer - AWS Rust SDK - Amazon - Remote USA
- Software Development Engineer - AWS Lambda - Amazon - Seattle
- Sr. Software Engineer Rust/Go - Equilibrium
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
I love Rust like I love Dark Souls.
It's difficult, but fair. I can not praise enough the software developers that realize proper errors are vastly superior to extensive docs.
Thanks to Armando Pérez Marqués for the suggestions!