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
- 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!
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.
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,
#[cfg(version(..))]
- have the per-query caches store the results on arenas
- avoid duplicating code for each query
- forbid
dyn Trait
in patterns - fix wrong argument in autoderef process
- suggest
into
instead oftry_into
if possible with int types - tweak some suggestions in
rustc_resolve
- add message for resolution failure because wrong namespace
- point at the return type on
.into()
failure caused by?
- suggest
;
or assignment to drop borrows in tail exprs - on type mismatch involving associated type, suggest constraint
- minimize parameter of
coerce_borrowed_pointer
- remove some
Vec
allocations to improve performance - allow
Unreachable
terminators unconditionally in const-checking - allow
Downcast
projections 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
- add
RefCell::take
slice::fill
: useT
instead of generic argVec
drop
andtruncate
: drop using raw slice*mut [T]
- hashbrown: mark
RawTable::par_iter
unsafe
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
No RFCs are in final comment period this week
Tracking Issues & PRs
- [disposition: merge] Tracking issue for RFC 2432, "Allow
if
andmatch
in constants" - [disposition: merge] Tracking issue for std::sync::Once poisoning
New RFCs
Upcoming Events
Online
- 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.
North America
- May 13. Vancouver, BC, CA - Vancouver Rust Meetup
- May 14. Columbus, OH, US - Columbus Rust Society - Monthly Meeting.
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
- 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!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, srikwit, and nasa42.