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.
Updates from Rust Community
- SixtyFPS (GUI crate): Changelog for 31th of October 2021
- MirChecker: Detecting Bugs in Rust Programs via Static Analysis
- apollo-rs: spec-compliant GraphQL tools in Rust
- GCC Rust Monthly Report #11 October 2021
- This week in Fluvio #11: the programmable streaming platform
- This week in Databend #14: an elastic and reliable cloud warehouse
- The Tree Structure of File Systems
- [ZH] Rust Chinese Magazine Issue 10 has been released!
- [ZH] The first draft of the Rust Secure Coding Specification in Chinese has been released. Everyone is welcome to contribute!
- [ZH] Trojan Source｜ Hiding invisible vulnerabilities in Rust code
- Advanced Serde - Loose type deserialization for non-self-describing protocols
- An Intro to the Rust Programming Language
- Getting Started with Rust on a Raspberry Pi Pico (Part 2)
- Anatomy of a Terminal Emulator
- Working with signals in Rust - some things that signal handlers can't handle
- Beginning Rust: Writing a Small CLI Tool
- Git Internals part 1: The git object model
- Getting started with Rust on RISC-V Linux
- Streaming the Reddit API using Fluvio's WASM ArrayMap
- [video] I'm learning Rust - Setup & fundamentals
- [video] Rust London: Building the Internet Of (Trusted) Things with Ockam and Embedded Rust
- [video] Rust London: Actor Programming with Ockam Workers
- [video] Rust London: How to end-to-end encrypt all application layer communication - with Ockam
- [video] Implementing Hazard Pointers in Rust (part 3)
- [series] [video] Writing a Programming Language (in Rust) 3: List destructuring
- [series] [video] Writing a Programming Language (in Rust) 4: List unspread and list iteration
- [series] [video] Writing a Programming Language (in Rust) 5: Function calls (Part 1)
- [series] [video] Rust Book Club
- Rust Editor Experience Survey
- Streaming the Reddit API using Fluvio's WASM ArrayMap
- [video] [IT] Introduzione a Rust
Crate of the Week
This week's crate is roogle, a type-based Rust API search engine inspired by Haskell's Hoogle.
Thanks to Hirochika Matsumoto for the suggestion!
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.
- ockam - Remove/clean up pub extern crate in top level of ockam_core
- ockam - Remove unnecessary core/heapless/hashbrown re-exports from signature_core::lib
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from the Rust Project
316 pull requests were merged in the last week
- fix CVE-2021-42574
- add LLVM Control Flow Integrity support to the Rust compiler
-Z no-unique-section-namesto reduce ELF header bloat
- fix: inner attribute followed by outer attribute causing ICE
- skipping verbose diagnostic suggestions when calling
.as_ref()on type not implementing
- improve and test cross-crate hygiene
- make most
conston numeric types
- codegen_gcc: remove unused dependency on object
- codegen_gcc: fix negation operation
- bindgen: don't generate 2^64 byte padding fields on unions
- bindgen: avoid case of a self-referential type alias
- cargo: change
- cargo: scrape code examples from
examples/directory for rustdoc
- rustdoc: fix generics generation in search index
- rustdoc: use better highlighting for
- rustdoc: remove flicker during page load
- clippy: move
if_then_panicto pedantic and rename to
- clippy: fix false positive in
- clippy: fix
question_markfalse positive on custom error type
- clippy: add
- clippy: new lint:
- clippy: ignore references to type aliases in
- clippy: fix ICE in
- clippy: disable
if_not_elselints from firing on
- rustfmt: prevent trailing whitespace in where clause bound predicate
- rustfmt: retain trailing comments in module when using
Rust Compiler Performance Triage
The only significant regressions were 1. two PRs that slowed down doc generation, and 2. some slowdown from the new lints to flag occurrences of Unicode bidirectional control characters. The doc generation regression is being investigated.
Triage done by @pnkfelix. Revision range: 3c8f00..6384dc
6 Regressions, 3 Improvements, 1 Mixed; 4 of them in rollups 39 comparisons made in total
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.
- [disposition: merge] stabilize format args capture
- [disposition: merge] Stabilize -Z symbol-mangling-version=v0 as -C symbol-mangling-version=v0
- [disposition: merge] Stabilize -Z strip as -C strip
- [disposition: merge] Stabilize
- [disposition: merge] Clarification of default socket flags
- [disposition: merge] use CLOCK_BOOTTIME in
- [disposition: merge] GATs: Decide whether to have defaults for
where Self: 'a
- November 3, 2021, Indianapolis, IN, US - Indy.rs - with Social Distancing - Indy Rust
- November 9, 2021, San Diego, CA, US - San Diego Rust November 2021 Tele-Meetup - San Diego Rust
- November 9, 2021, Berlin, DE - Rust Hack and Learn - Berline.rs
- November 9, 2021, Seattle, WA, US - Monthly Meetup - Seattle Rust Meetup
- November 10, 2021, Malaysia - Rust Meetup - Rust Malaysia
- November 11, 2021 - Rust For Linux: Writing Safe Abstractions & Drivers - The Linux Foundation
- November 17, 2021, Vancouver, BC, CA - Borrowing and Lifetimes through Metaphors - Vancouver Rust
- November 10, 2021, Atlanta, GA, US - Grab a beer with fellow Rustaceans - Rust Atlanta
- November 10, 2021, Mesa, AZ, US - Booze.rs - Desert Rust
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
I always tell myself that code quickly written just to compile looks like Order 66 executed on Christmas day
Clones and unwrapping as far as the eye can see.
Thanks to UtherII for the suggestion!