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.
There is no This Week in Rust podcast this week, next week's episode will cover both this week and next week.
Since our previous issue, there has been a lot of news about the civil rights discourse in the United States, spawned by the murder of George Floyd by a member of the Minneapolis Police Department. We stand with Black Lives Matter and our Black siblings now and always.
We believe this is not a matter of taking a political stance, but a matter of supporting basic human rights and equality.
We believe that Rustaceans have a duty to our community and to the rest of the world to ensure that people feel comfortable and welcome wherever they may be. In our own community, the Rust Code of Conduct explicitly states that we intend to make everybody feel safe, but this does not just apply to us.
Just as we support Rustaceans, we also support humanity as a whole. It is time for social progress to be made. We support those risking their own well-being to show support for George Floyd, Breonna Taylor, Ahmaud Aubery, and everyone else who has faced injustice at the hands of members of the police. We stand with the protesters hoping to make the world better.
If you want to show your support, here is a website of curated resources. We encourage you to speak out, as one more voice is one step closer to a better world.
- RustConf 2020 Registration is Open
- 2020 Contributor Survey
- A retrospective on the 2018 rust-lang.org redesign
- Rust Disassembly: Part 1
- Fuzzing Sequoia-PGP
- Mutex in async world
- Custom types in Diesel
- Auto-Vectorization for Newer Instruction Sets in Rust
- Current State of Embedded Rust for Flight Controllers
- 3D boids swimming along in perfect harmony; Implementing the boids flocking algorithm in Rust
- Coverage Marks
- Ringbahn: a safe, ergonomic API for io-uring in Rust
- rust-analyzer changelog #26
- Why I'm enjoying learning Rust as a Java programmer
- Contributing to Rust
- 10 Most Loved Programming Languages: Rust, TypeScript, and More
- Creating a Ruby Gem with Rust
- Designing the Rust Unleash API client
- How to build a WebSocket server with Rust
- Invoking Functions on Distributed Game Objects
- IPv6 and Rust
- Rust as a High Level Language
- Sorting algorithms in Rust
- Programming Servo: integrating streams
- To Rust or not to Rust
- [Spanish] Aprende Rust en español
- [video] A Rust & Wasm tutorial on building Bitcoin infrastructure. Rust beginner-friendly!
- [video] Crust of Rust: Iterators
- [video] Rust and Tell Berlin - May 2020
This week's crate is jql, a JSON Query Language CLI tool.
Thanks to Davy Duperron for the suggestion!
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.
- ruma-events: Add predefined push notification rules
- ruma-events: Add helpers to construct the fallback for rich replies
- ruma-events: Create a distinct type for PushCondition::RoomMemberCount::is
- Writing database management system in Rust. When the flame is born from the ashes
If you are a Rust project owner and are looking for contributors, please submit tasks here.
442 pull requests were merged in the last week
- implement unsafe blocks in unsafe fn (RFC #2585)
- exhaustiveness checking: work around type normalization issues
- suggest using
std::mem::dropfunction instead of explicit destructor call
- add a lint against references to packed fields
- avoid setting wrong obligation cause span of associated type mismatch
- account for trailing comma when suggesting
- fix diagnostics for
@ ..binding pattern in tuples and tuple structs
- chalk: request hidden opaque types lazily
- miri: synchronization primitive cleanup
from_u32_unchecked: check validity, and fix UB in Wtf8
- make pointer offset methods/intrinsics const
impl From<[T; N]> for Box<[T]>
- stabilization of
- resolve UB in Arc/Weak interaction, part 2
impl Step for char(make
- various minor improvements to
SocketAddrand friends now correctly pad its content
- implement PartialOrd and Ord for SocketAddr*
- tweak and stabilize
- stdarch: add 64 bit integer AVX512f comparisons and the intrinsics needed to test them
- stdarch: add 64 bit AVX512f le and ge comparisons
- libm: use macros for more division/array checks
This is a new section containing the results of a weekly check on how rustc's perf has changed.
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
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 currently in the final comment period.
- [disposition: merge]
- [disposition: merge] Add raw_ref macros
- [disposition: merge] Tracking issue for
- add lang-team Major Change Proposals as a "pre-RFC" step
- Unsafe statics
- Request for creating pipes with fd other than 0,1,2
- June 3. Johannesburg, ZA - Remote - Johannesburg Rust Meetup
- June 8. Auckland, NZ - Remote - Rust AKL
- June 9. Seattle, WA - Remote - Seattle Rust Meetup
- June 11. San Diego, CA - Remote - San Diego Rust Meetup
- June 3. Indianapolis, IN, US - Indy.rs Meetup
- June 11. Columbus, OH, US - Columbus Rust Society Monthly Meeting
- June 11. Lehi, UT, US - Utah Rust - Lightning Talks
- Software Engineer - Rust - IOTA Foundation - Remote
- Senior Rust Engineer - Polymath - Remote
- Rust Back End Engineer, Core Banking - TrueLayer - Milan, Italy
Tweet us at @ThisWeekInRust to get your job offers listed here!
Rust enables belligerent refactoring – making dramatic changes and then working with the compiler to bring the project back to a working state.
– Joe Wilm
Thanks to Maxim Vorobjov for the suggestions!