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
No Rust Blog posts this week.
Newsletters
- RiB Newsletter #17 - Trick? Or Trait?
- This month in Dimforge #2 (October 2020)
- These Weeks in Actix | Sep-Oct '20
Tooling
- Rust-Analyzer Changelog #49
- IntelliJ Rust Changelog #134
- IntelliJ Rust: New Functionality for Cargo Features
Observations/Thoughts
- Semantic FFI Bindings in Rust - Reactivating the Borrow Checker
- Exception safety in Rust: using transient droppers to prevent memory leaks
- Wasmcloud Progress
- Fast programming languages: C, C++, Rust, and Assembly
- For Complex Applications, Rust is as Productive as Kotlin
- Rust for Data-Intensive Computation
- Using Rust for a simple hardware project
- The Fatal Flaw of Ownership Semantics
- Fixing bootstrap of rustc using cg_clif
- Advanced Cargo [features] Usage
Rust Walkthroughs
- Rust Design-for-Testability: a survey
- Rust from a Gopher - Lessons 3 & 4
- Rocket Tutorial 01: Basics
- Building an AWS Lambda extension with Rust
- A Gopher Client in Rust - 02 Core Client
- A Gopher Client in Rust - 03 Bookmarks and Full Code
- Rust HTTP Testing with httpmock
- The Newtype Pattern in Rust
- How to: Rust + SDL2 + OpenGL on the web
- Minicompiler: Lexing
- Continuous Deployment For Rust Applications (Zero To Production In Rust #5)
- [DE] The Rust Programming Language (translated in German)
- [video] (Live Coding) Audio adventures in Rust: UI with WASM, Yew, and WebView
- [video] How to build a multiplayer game - RustFest.Global Pre-Event (Video)
- [video] Current state of wasm with rust using an example
- [video] Understanding Rust Lifetimes
Project Updates
- oso, an open-source policy engine for authorization written in Rust, released version 0.7.1 of their authorization library for Rust projects!
- Apache Arrow 2.0.0 Rust Highlights
Miscellaneous
Crate of the Week
This week's crate is tract from Sonos, a neural network inference library, written purely in Rust for models in ONNX, NNEF and TF formats.
Thanks to Benjamin Minixhofer 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.
Updates from Rust Core
374 pull requests were merged in the last week
- add cg_clif as optional codegen backend (Woohoo!)
- rustc_span: improve bounds checks in byte_pos_to_line_and_col
- adjust turbofish help message for const generics
- avoid complex diagnostics in snippets which contain newlines
- suggest calling await on method call and field access
- fix control flow check for breaking with diverging values
- uplift
temporary-cstring-as-ptr
lint from clippy into rustc - check object safety of generic constants
- chalk: make max goal size for recursive solver configurable
- coherence check perf: iterate over the smaller list
- optimise align_offset for stride=1 further
- inline
NonZeroN::from(n)
- inline Default::default() for atomics
- inline some functions in core::str
- prevent
String::retain
from creating non-utf8 strings when abusing panic - add
fetch_update
methods toAtomicBool
andAtomicPtr
- add
[T]::as_chunks
(_mut
) - fix
Box::into_unique
- hashbrown: better branch likelyness on stable
- futures: add
WeakShared
- cargo: add a future-compatibility warning on allowed feature name characters
- cargo: new namespaced features implementation
Rust Compiler Performance Triage
- 2020-11-03: 0 Regressions, 5 Improvements, 0 mixed
A number of improvements on various benchmarks. The most notable news this week in compiler performance is the progress on instruction metric collection on a per-query level; see measureme#143 for the latest.
Otherwise, this week was an excellent one for performance (though mostly on stress tests and auto-generated test cases rather than commonly seen code).
See the full report for more.
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] consider assignments of union field of ManuallyDrop type safe
- [disposition: merge] repr(transparent) on generic type skips "exactly one non-zero-sized field" check
- [disposition: merge] Rename/Deprecate LayoutErr in favor of LayoutError
- [disposition: merge] Tracking Issue for raw_ref_macros
- [disposition: merge] Add checking for no_mangle to unsafe_code lint
New RFCs
Upcoming Events
Online
- November 7 & 8, Global, RustFest Global
- November 10, Seattle, WA, US - Seattle Rust Meetup
- November 10, Saarbücken, Saarland, DE - Meetup: 5u16 (virtual) - Rust Saar
- November 12, Berlin, DE - Rust Hack and Learn - Berline.rs
- November 12, Washington, DC, US - Mid-month Rustful—How oso built a runtime reflection system for Rust - Rust DC
- November 12, Lehi, UT, US - WASM, Rust, and the State of Async/Await - Utah Rust
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
- Software Engineer (IoT/Robotics) at Wayve (London, UK)
- Software Engineer at ChainSafe Systems (Toronto, Remote)
- Senior Software Engineer - Rust at Immunant (Remote US)
- Backend Engineer - Rust at Kraken (Remote NA, SA, EMEA)
- Backend Engineer, Kraken Futures - Rust at Kraken (Remote)
- Rust Engineer, Desktop GUI - Cryptowatch at Kraken (Remote)
- Senior Backend Engineer - Rust at Kraken (Remote NA, SA, EMEA)
- Senior Full Stack Engineer - Rust at Kraken (Remote)
- Software Engineer - Trading Technology (Rust) at Kraken (Remote NA, SA, EMEA)
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
Like other languages Rust does have footguns. The difference is that we keep ours locked up in the unsafe.
Thanks to Nikolai Vazquez for the suggestion.
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, and cdmistman.