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.
Check out this week's This Week in Rust Podcast
Updates from Rust Community
News & Blog Posts
- crates.io security advisory
- Announcing Rust 1.45.0
- Traits working group 2020 sprint 3 summary
- Best Programming Languages to Learn in 2020(Rust Lang)
- Learn how to make a Sokoban game in Rust!
- Clear explanation of Rust’s module system
- Checking status of Rust features
- Programming Servo: just hanging around
- Efficient representation of Ultimate Tic Tac Toe using Rust
- Next Algorithm: Backtracking into the n Queens Problem
- RSoC: improving drivers and kernel - part 3 (largely io_uring)
- Writing an asynchronous MQTT Broker in Rust - Part 2
- Rust Closures: Returning
impl Fn
formove
closures - Writing a kernel driver with Rust
- Rewriting FORTRAN Software In Rust
- Building and debugging a high-throughput daemon in Rust
- Why even unused data needs to be valid
- Three Architectures for a Responsive IDE
- Packaging & Vending Production Rust Software - Windows
- Async Rust, but less intimidating
- Rust Analyzer Changelog #34
- Benchmarking gRPC in Rust & Go
- Function Overloading in Rust
- Geometric Constraint Solvers Part 1: Algebraic Expressions
- Haskell::From(Rust) I: Infix Notation and Currying
- How to Write a Queue in Rust
- Implementing a Workflow Graph
- Implementing
flat_map
in Rust - IntelliJ Rust 0.3: New Macro Expansion Engine
- Low Level Stuff pt. 1 - Booting to 'Hello Rust!'
- My Bet on Rust has been Vindicated
- The Next Steps for Single Ownership and RAII
- Popol: Minimal Non-Blocking I/O with Rust
- Rust vs Go in Backend Web Development
- Shipping Const Generics in 2020
- Two Beautiful Rust Programs
- [Japanese] TCPが遅すぎる?QUICを使おう!
- [Spanish] Rust para embebidos
- [Portuguese] Aprendendo Rust: 03 - Variáveis
- [Portuguese] [video] Curso Rust 🦀 - Aula 4 - strings, match, sorteio, quizz
- [video] Boiled Down Crate 🦀: OnceCell
- [video] Rust: What is Ownership and Borrowing
Crate of the Week
This week's crate is pre, a library for declaring and checking the assurance of precondition, useful for unsafe functions.
Thanks to Zicklag 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.
- zbus is looking for contributors
- just: Add extensible recipe and justfile attributes
- libpnet: Segfault in icmp send
- rust: fs::remove_dir_all rarely succeeds for large directories on window
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
394 pull requests were merged in the last week
- do not try fetching the ancestors of errored trait impls
- only skip impls of foreign unstable traits
- don't assign
()
to!
MIR locals - some
Symbol
related improvements - use
ArrayVec
inSparseBitSet
- change
SymbolName::name
to a&str
- enforce the static symbol order
- reduce the amount of interning and
layout_of
calls in const eval - add
Arguments::as_str()
impl Index<RangeFrom> for CStr
- add (unchecked) indexing methods to raw (and NonNull) slices
- make some
Option
methods const - use
step_unchecked
more liberally in range iter impls - add
core::task::ready!
macro - backtrace: use noop backends on Miri
- stdarch: update and revamp wasm32 SIMD intrinsics
- stdarch: implement AVX512f floating point comparisons
- stdarch: constify all x86
rustc_args_required_const
intrinsics - make
unreachable_unchecked
a const fn - cargo: fix freshness checks for build scripts on renamed dirs
- crates.io: generate API tokens with a secure RNG, store hashed
- add Ayu theme to rustdoc
- clippy:
unnecessary_sort_by
: avoid linting if key borrows
Rust Compiler Performance Triage
- 2020-07-21. A disastrous week. At least 7 regressions. 3 improvements. Lots of murkiness due to 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:
No RFCs were approved 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
Tracking Issues & PRs
- [disposition: merge] Stabilize core::future::{pending,ready}
- [disposition: merge] Make more primitive integer methods const
- [disposition: merge] Derive common traits for panic::Location
New RFCs
- Add
oneof
configuration predicate to support exclusive features - RFC: Promote aarch64-unknown-linux-gnu to a Tier-1 Rust target
- Add Drop::poll_drop_ready for asynchronous destructors
- Stabilize Cargo's new feature resolver
- Add the partial-closure-args RFC
Upcoming Events
Online
North America
- July 27. Durham, NC, US - Triangle Rustaceans - Project Night & Lightning Talks
- July 28. Dallas, TX, US - Dallas Rust - Last Tuesday
Asia Pacific
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
- RUST Senior Software Engineer - Backend at LogDNA (Remote, US)
- Rust Engineer at Elektron (Gothenburg, SE)
- Software Engineer - Systems and Analytics at Noibu (Ottawa, ON, CA)
- Software Engineer - Data Collection at Noibu (Ottawa, ON, CA)
- Senior Backend Engineer at OneSignal (San Mateo, CA, US)
- Rust Developer at OnePassword (Remote, US or CA)
- Systems Engineer at Findora (Menlo Park, CA, US)
- Senior Systems Engineer at Findora (Menlo Park, CA, US)
- Rust Developer at ESR Labs (München, DE)
- [french] Rust Instructor - University of Paris 8 (Paris, FR)
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
unsafe
Rust is all about flirting with UB but never giving in.
Thanks to HeroicKatora for the suggestions!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.