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
Project/Tooling Updates
- IntelliJ Rust Changelog #152
- What's new in IntelliJ Rust
- rust-analyzer Changelog #88
- GCC Rust Monthly Report #8 July 2021
- rustc_codegen_gcc: Progress Report #2
- Rust on Espressif chips
- ConnectorX: accelerate data loading from databases to dataframes
- This week in SixtyFPS (a Rust GUI toolkit)
- This week in Fluvio 1: the programmable streaming platform
- This week in Datafuse #1
- This Week In TensorBase 14
Observations/Thoughts
- 15k inserts/s with Rust and SQLite
- Deep Learning in Rust with GPU using onnxruntime-rs
- Rewriting my mobile game in Rust targeting WASM
- How to write really slow Rust code
- Rust: First Thoughts
- 5 Reasons Why You Should Start Using Rust for Personal Projects
- A Borrowck Battle to Remember
- [audio] Open Source Security Episode 282 - The security of Rust: who left all this awesome in here?
Rust Walkthroughs
- Async Rust From The Ground Up: A Simple Web Server
- Implementing Base64 from scratch with Rust
- Improvements for #[doc] attributes in Rust
- How to deploy Rust on Heroku (with Docker)
- Rust #7: Command-Line interfaces
- Adding our own custom statement to Rust language
- Core dump for Rust
- Zero to Production in Rust #9: Naive Newsletter Delivery
- Interacting with data from FFI in Rust
- How I built End-to-End Encrypted Messaging in 51 lines of Rust, using the Ockam crate
- [PT] Resumo: Closure no Rust
- [ZH-CN] Tokio Internals - 源码解读和设计分析
Miscellaneous
- Rust is the most loved language, SIX YEARS IN A ROW. StackOverflow Survey 2021 is out!
- Rust Module of the Week!
- University of Illinois at Urbana-Champaign Graduate (Ralf Jung) receives ACM Doctoral Dissertation Award
- Implementing a BLT parser by hand in Rust (vs pest and combine): OpenTally dev log
- Rust on RISC-V BL602: Is It Sunny?
- Rust Design FAQ for C++ Programmers
- 🦀 Role-Based Access Control (RBAC) Guide in Rust
- betterCode Rust Conference announced (October 13)
Crate of the Week
This week's crate is sycamore, a crate for making web applications using WebAssembly..
Thanks to Luke Chu for the self-suggestion.
Submit your suggestions and votes for next week!
Module of the Week
Launching this week is Rust Module of the Week with std::fs Part 1. Contribution and feedback welcome here.
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.
- vandenheuvel/relp - A faster implementation of Markowitz' pivot rule in LU factorization
- vandenheuvel/relp - Parsing the LP file format
- ockam-network/ockam - Make Rust Errors more idiomatic
- ockam-network/ockam - File Transfer over end-to-end encrypted secure channels
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
324 pull requests were merged in the last week
#[derive(Default)]
on enums with a#[default]
attribute (RFC #3107)- fix issue with autofix for ambiguous associated function from Rust 2021 prelude when struct is generic
- add flag to configure
large_assignments
lint - make const
panic!("..")
work in Rust 2021 - suggest removing unnecessary
&mut
as help message - suggest
;
on parse error where applicable - fix invalid suggestions for non-ASCII characters in byte constants
- tweak opaque type mismatch error
- bail on any found recursion when expanding opaque types
- polonius: compute subset errors everywhere
- MIR borrowck does not generate lifetime variables for
'static
lifetimes during opaque type resolution - tweak borrowing suggestion in
for
loop - remove unsound
TrustedRandomAccess
implementations - BTree: lazily locate leaves in rangeless iterators
- partially stabilize
const_slice_first_last
- stabilize
core::task::ready!
- stabilize
const_fn_transmute
,const_fn_union
- implement
fold()
onarray::IntoIter
to improveflatten().collect()
perf - optimize
fmt::PadAdapter::wrap
- remove
P: Unpin
bound onimpl Future for Pin
- futures: use
futuresordered
injoin_all
- clippy: cover
Result
onmap_flatten
lint - clippy: fix
while_let_on_iterator
Rust Compiler Performance Triage
Quiet week for performance, with no large changes. Regressions are limited to just a few benchmarks.
Triage done by @simulacrum. Revision range: 998cfe5..3354a44
2 Regressions, 0 Improvements, 0 Mixed; 1 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:
- Stabilize Cargo's weak-dep-features and namespaced-features.
- RFC: Introduce concat_bytes!() to join [u8] and byte str analogous to concat! for str
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] Stabilize
Vec<T>::shrink_to
- [disposition: merge] impl Default, Copy, Clone for std::io::Sink and Empty
- [disposition: merge] impl Pattern for char array
- [disposition: merge] Weaken guarantee around advancing underlying iterators in zip
New RFCs
Upcoming Events
Online
- August 5, 2021, Berlin, DE - Rust Hack and Learn - Berline.rs
- August 9, 2021, Seattle, WA, US - Monthly meetup - Seattle Rust Meetup
- August 10, 2021, Dublin, IE - Rust Dublin August Remote Meetup - Rust Dublin
- August 18, 2021, Denver, CO, US - Level up our Rust skills by building an ECS by Brooks Patton - Rust Denver
- August 18, 2021, Vancouver, BC, CA - Solving LeetCode Problems with Rust - Vancouver Rust
- August 19, 2021, Manchester, UK - Rust Manchester - Speeding Up the Snake: Extending Python with Rust
North America
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
Tweet us at @ThisWeekInRust to get your job offers listed here!
Parity Technologies
Travala
ChainSafe
Kollider
Kraken
Subspace Labs
Quote of the Week
Sadly, this week saw no quote of the week nominations.
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.