Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. 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
Official
Newsletters
Project/Tooling Updates
- Announcing Arti, a pure-Rust Tor implementation
- Programmatic stream filtering using WebAssembly
- Filecoin Rust implementation "Forest" project update
- Mina Rust implementation update: Web 3.0 with Rust x Wasm
- This Week In TensorBase 11
- Rust Analyzer Changelog #85
Observations/Thoughts
- (Risp (in (Rust) (Lisp)))
- [series] Learning Rust #6: Understanding ownership in Rust
- [series] Why and how we wrote a compiler in Rust: Part 2
- [audio] What's New in Rust 1.52 and 1.53
Rust Walkthroughs
- Inline In Rust
- Using WebAssembly threads from C, C++ and Rust
- Hello, Video Codec! - Demystify video codecs by writing one in ~100 lines of Rust
- Learning Idiomatic Rust with FizzBuzz
- Rust + Tauri + Svelte Tutorial
- Rust Nibbles : Gazebo - An introduction to the Gazebo library
- A Rust controller for Kubernetes
- First steps with Docker + Rust
- [series] Writing an RPG using rg3d - #1 - Character Controller
- [series] Rust #4: Options and Results (Part 2)
- [series] Basic CRUD with rust using tide - refactoring
- [video] End-to-end Encrypted Messaging in Rust, with Ockam by Mrinal Wadhwa
- [video] [series] Building a Web Application with Rust - Part IX - Deploying on Kubernetes
- [video] [series] ULTIMATE Rust Lang Tutorial! - Smart Pointers Part 1
- [video] [series] Implementing Hazard Pointers in Rust (part 2)
Papers
Miscellaneous
Crate of the Week
This week's crate is endbasic, an emulator friendly DOS / BASIC environment running on small hardware and the web.
Thanks to Julio Merino 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.
Synth
- Specify collections on import
- Add tests for examples (i.e. bank_db)
- Implemented a converter for timestamptz
- Feature: Doc template generator
Forest
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
254 pull requests were merged in the last week
- improve opaque pointers support
- recover from
&dyn mut
... parse errors - improve error reporting for modifications behind
&
references - do not suggest adding a semicolon after ?
- use
#[track_caller]
in const panic diagnostics - query-ify global limit attribute handling
- support forwarding caller location through trait object method call
- shrink the deprecated span
- report an error if resolution of closure call functions failed
- stabilize
RangeFrom
patterns in 1.55 - account for capture kind in auto traits migration
- stop generating
alloca
s &memcmp
for simple short array equality - inline
Iterator as IntoIterator
- optimize unchecked indexing into
chunks
andchunks_mut
- add
Integer::log
variants - special case for integer log10
- cargo: unify cargo and rustc's error reporting
- rustdoc: fix rendering of reexported macros 2.0 and fix visibility of reexported items
Rust Compiler Performance Triage
Mostly quiet week; improvements outweighed regressions.
Triage done by @simulacrum. Revision range: 9a27044f4..5aff6dd
1 Regressions, 4 Improvements, 0 Mixed; 0 of them in rollups
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 currently in the final comment period.
Tracking Issues & PRs
- [disposition: merge] Move assert_matches to an inner module
- [disposition: merge] Stabilize arbitrary_enum_discriminant
- [disposition: close] regression: infallible residual could not convert error
- [disposition: merge] Document iteration order of retain functions
- [disposition: merge] Partially stabilize const_slice_first_last
- [disposition: merge] Stabilize const_fn_transmute, const_fn_union
- [disposition: merge] Allow leading pipe in matches!() patterns.
- [disposition: close] Add expr202x macro pattern
- [disposition: merge] Remove P: Unpin bound on impl Future for Pin
- [disposition: merge] Stabilize core::task::if_ready!
- [disposition: merge] Tracking Issue for IntoInnerError::into_parts etc. (io_into_inner_error_parts)
- [disposition: close] Implement RFC 2500 Needle API (Part 1)
New RFCs
Upcoming Events
Online
- July 14, 2021, Malaysia - Rust Meetup July 2021 - Golang Malaysia, feat Rustlang, Erlang, Haskelllang and
.*-?(lang|script)\
- July 14, 2021, Dublin, IE - Rust Dublin July Remote Meetup - Rust Dublin
- July 20, 2021, Washington, DC, US - Mid-month Rustful - Rust DC
- July 21, 2021, Vancouver, BC, CA - Rust Adoption at Huawei - Vancouver Rust
- July 22, 2021, Tokyo, JP - Rust LT Online#4 - Rust JP
- July 22, 2021, Berlin, DE - Rust Hack and Learn - Berline.rs
- July 27, 2021, Dallas, TX, US - Last Tuesday - Dallas Rust
North America
- July 14, 2021, Atlanta, GA, US - Grab a beer with fellow Rustaceans - Rust Atlanta
- July 27, 2021, Chicago, IL, US - Rust in production at Tempus - Chicago 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
GraphCDN
Netlify
ChainSafe Systems
NZXT
Kollider
Tempus Ex
Estuary
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Beginning Rust: Uh why does the compiler stop me from doing things this is horrible
Advanced Rust: Ugh why doesn't the compiler stop me from doing things this is horrible
Thanks to Nixon Enraght-Moony for the self-suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.