pub ThisWeekInRust {} – Telegram
pub ThisWeekInRust {}
992 subscribers
2 photos
2.41K links
Handpicked Rust updates,
delivered to your telegram.

Contacts: @sergeysova
Reposted from: https://this-week-in-rust.org
Source code: https://github.com/sergeysova/this_week_in_rust.rs
Another: @this_week_in_react
Download Telegram
Crate of the week: lapce

This week's crate is lapce, a lightning-fast powerful code editor written in Rust.
Updates from Rust Community

Official
Changes at the Cargo Team
blog.rust-lang.org

Rust Lang Roadmap for 2024
blog.rust-lang.org

Foundation
The Rust Foundation Community Grants Program 2022 Opens for Applications
foundation.rust-lang.org

Newsletters
Rust Nigeria Newsletter #4
rustnigeria.curated.co

Project/Tooling Updates
What's new in axum 0.5
tokio.rs

rust-analyzer changelog #123
rust-analyzer.github.io

Slint (GUI crate) weekly update
slint-ui.com

Fornjot (Code-CAD in Rust) - Weekly Dev Log - 2022-W13
www.fornjot.app

Introducing StarfishQL - visualizing the dependency network on crates.io
www.sea-ql.org

This week in Fluvio #27: the programmable streaming platform
www.fluvio.io

Rust on Espressif chips - 04-04-2022
mabez.dev

GCC Rust Monthly Report #15 March 2022
thephilbert.io

Progress Report #10: rustc_codegen_gcc can now bootstrap rustc!
blog.antoyo.xyz

youki 0.0.3 has been released, with WASM support
containers/youki/releases/tag/v0.0.3

Coppers - A test harness that measures the energy usage of your Rust projects
ThijsRay/coppers

Observations/Thoughts
The Tower of Weakenings: Memory Models For Everyone - Faultlore
gankra.github.io

hyper 1.0 roadmap
seanmonstar.com

Why Rust mutexes look like they do
cliffle.com

Improving Python S3 Client Performance with Rust
https://joshua-robinson.medium.com/improving-python-s3-client-performance-with-rust-e9639359072f

Qiskit now includes Rust for better performance
medium.com/qiskit

Why We’re Porting Our Database Drivers to Async Rust
thenewstack.io

The Chronicles of a Web3 philosopher.
dev.to

[audio] Rusty Engine
rustacean-station.org

Rust Walkthroughs
Futures Nostalgia
fasterthanli.me

A Rust web server / frontend setup like it's 2022 (with axum and yew)
robert.kra.hn

Rust's fearless concurrency in practice
kerkour.com

[video] Rust multi-threading code review
www.youtube.com

Miscellaneous
A Computer Science Curriculum with Rust flavor
AbdesamedBendjeddou/Rusty-CS

Tracking the JWST: Programming/Language Issues
arachnoid.com

Ferrous Systems and Espressif’s Rust Training on ESP32
www.espressif.com

RUST! #[proc_macros] zine
lrlna/smol-zines/blob/fc925ac8168599915dd179babd858c53d6f57aab/zines/rust-proc-macros.md
Crate of the week: bet

This week's crate is bet, a library of binary expression trees.
Updates from Rust Community

Official
Announcing Rust 1.60.0
blog.rust-lang.org

Lang team April update
blog.rust-lang.org

Foundation
Member Spotlight: Tangram Vision
foundation.rust-lang.org

Project/Tooling Updates
rust-analyzer changelog #124
rust-analyzer.github.io

IntelliJ Rust Changelog #168
intellij-rust.github.io

Ogma v0.3 release - now with type inference!
www.kurtlawrence.info

Slint (GUI crate) weekly update
slint-ui.com

Introducing FoundationDB Client API for Tokio
fdb-rs.github.io

Introducing PCB-rs : Making it easier to write hardware
dev.to

Fornjot (Code-CAD in Rust) - Weekly Dev Log - 2022-W14
www.fornjot.app

Fazi - a drop-in replacement for libfuzzer
www.reddit.com

This Month in Rust OSDev (March 2022) | Rust OSDev
rust-osdev.com

This week in Fluvio #28: the programmable streaming platform
www.fluvio.io

This week in Databend #36: A Modern Cloud Data Warehouse for Everyone
weekly.databend.rs

This week in Databend #37: A Modern Cloud Data Warehouse for Everyone
weekly.databend.rs

Newsletters
This Month in Rust GameDev #32 - March 2022
gamedev.rs

Observations/Thoughts
Defaults Affect Inference in Rust: Expressions Instead Of Types
gankra.github.io

Rust in Action Book Review
blog.frankel.ch

What I learned from making a DNS client in Rust
blog.adamchalmers.com

dyn* doesn't need to be special
dev.to

How to speed up the Rust compiler in April 2022
nnethercote.github.io

Is life too short to fight Rust's borrow checker?
kerkour.com

Learning Rust You Need a Cognitive Frame
dev.to

[DE] Programmiersprache: Rust-Team blickt zwei Jahre nach vorn auf Rust ...
www.heise.de

[DE] Programmiersprache Rust 1.60 zeigt Codeabdeckung und sieht Zeitspan...
www.heise.de

Rust Walkthroughs
Implied bounds and perfect derive
smallcultfollowing.com

Postfix Spawn
blog.yoshuawuyts.com

Continuous Looper
beijaflor.io

Chumsky: A Tutorial
zesterer/chumsky/blob/82d534d2bd52de98dfe828bc84a177de9fd1a245/tutorial.md

Pointers Are Complicated III, or: Pointer-integer casts exposed
www.ralfj.de

rustdoc: Recent UI and UX changes in generated documentation
blog.guillaume-gomez.fr

Building a crawler in Rust: Associated Types
kerkour.com

[video] Perfect Reflections - 034 - The Ray Tracer Challenge
www.youtube.com

[video] Let's Demystify the Borrow Checker! - Rust 101 Lecture 2
www.youtube.com

[video] Using Futures to wrap an unsafe USB API to play audio directly - Denver Rust Meetup
www.youtube.com

Miscellaneous
[audio] Rustacean Station - Purdy with Marty Jones
rustacean-station.org

[video] Rust Gamedev Meetup #15: April 2022
www.youtube.com
Crate of the week: hifitime

This week's crate is hifitime, a high fidelity time management library.
👍1
Updates from Rust Community

Official
Rust Compiler April 2022 Steering Cycle
blog.rust-lang.org

Please welcome Thom and Chris to Library Contributors
blog.rust-lang.org

Imposter Syndrome
blog.rust-lang.org

Foundation
Member Spotlight: KDAB
foundation.rust-lang.org

Project/Tooling Updates
MnemOS Initial Release Announcement
jamesmunns.com

Bevy 0.7
bevyengine.org

rust-analyzer changelog #125
rust-analyzer.github.io

Fornjot (Code-CAD in Rust) - Weekly Dev Log - 2022-W15 (Pre-Vacation Edition)
www.fornjot.app

Rewriting sysctl(8) in Rust (systeroid)
blog.orhun.dev

Postage v0.5.0
implaustin.hashnode.dev

Slint (GUI crate) weekly update
slint-ui.com

This week in Fluvio #29: the programmable streaming platform
www.fluvio.io

This week in Databend #38: A Modern Cloud Data Warehouse for Everyone
weekly.databend.rs

Observations/Thoughts
Why You Should Be Worried About the Future of C/C++ in Embedded: A Case for Rust
apollolabsblog.hashnode.dev

Coherence and crate-level where-clauses
smallcultfollowing.com

How Async Functions in Traits could Work in Rustc
blog.theincredibleholk.org

Choosing the Right Integers
www.thecodedmessage.com

Rustaceans at the border
lwn.net

Building a new terminal - using macOS Metal APIs for UI rendering (interview with Warp)
console.dev

35 Rust Learning Resources Every Beginner Should Know in 2022
apollolabsblog.hashnode.dev

We asked 5 people why they like Embedded Rust
tweedegolf.nl

A Performance Evaluation on Rust Asynchronous Frameworks
zenoh.io

Compile time evaluation in Nim, Zig, Rust and C++
castillodel.github.io

Including two versions of a Rust crate in a single project
reltech.substack.com

[video] 2022-04-20 Design Meeting: Felienne Hermans, Psychology of Programming
www.youtube.com

[audio] Armin Ronacher on experimental deserialization with Deser
rustacean-station.org

Rust Walkthroughs
LoRaWAN Applications in Rust
tweedegolf.nl

Building a crawler in Rust: Synchronization (Atomic Types and Barriers)
kerkour.com

Hostname based router with axum in Rust
kerkour.com

Command line argument parsing in Rust using Clap
blog.logrocket.com

Full-text search for DynamoDB using Lambda, EFS, Tantivy and Rust
jakejscott.com

Building and Deploying a URL shortener with Rust in 10 minutes or less
www.shuttle.rs

Rust on Nails: A full stack architecture for Rust web applications
cloak.software

An Intro to the Sauron web Framework
blog.chainsafe.io

[video] I'm in ur address space
fasterthanli.me

[video] A Mir Formality Walkthrough #1
www.youtube.com

Miscellaneous
Cancellation: RustFest Global EMEA Edition
rustfest.world
Crate of the week: ttrpc

This week's crate is ttrpc, a GRPC-like protocol implementation for memory-constrained environments.
Updates from core

debuginfo: emit ZST struct debuginfo for unit type when CPP-like debuginfo is enabled
rust-lang/rust/pull/96316

better error message for _ in function signature in impl Trait for Ty
rust-lang/rust/pull/95395

fix an invalid error for a suggestion to add a slice in pattern-matching
rust-lang/rust/pull/96122

improve span for consider adding an explicit lifetime bound suggestions under NLL
rust-lang/rust/pull/96352

improve diagnostic on failure to meet send bound on future in a foreign crate
rust-lang/rust/pull/94493

make the lifetime accurate which is used in the region constraints part
rust-lang/rust/pull/96315

miri: allow to track multiple alloc-ids, call-ids and pointer tags
rust-lang/miri/pull/2075

miri: do not consider thread-local allocations read-only
rust-lang/miri/pull/2074

interpret: fix writing uninit to an allocation
rust-lang/rust/pull/96162

micro-optimize ty::relate::relate_substs by avoiding match
rust-lang/rust/pull/96020

optimize const_prop mir-opt by accessing local_decls through ecx
rust-lang/rust/pull/96281

remove visibility information from HIR
rust-lang/rust/pull/93970

speed up TokenCursor
rust-lang/rust/pull/96210

alloc: make vec! unavailable under no_global_oom_handling
rust-lang/rust/pull/96089

unstably constify impl<I: Iterator> IntoIterator for I
rust-lang/rust/pull/90602

add as_slice to slice iterator
rust-lang/rust/pull/92287

improve Windows path prefix parsing
rust-lang/rust/pull/94887

reduce allocations for path conversions on Windows
rust-lang/rust/pull/96314

futures: create copy_buf_abortable, which enables to stop copying in the middle
rust-lang/futures-rs/pull/2507

codegen_gcc: don't emit .intel_syntax for non-x86 targets
rust-lang/rustc_codegen_gcc/pull/164

cargo: prefer key.workspace = true to key = { workspace = true }
rust-lang/cargo/pull/10584

rustdoc: optimize IdMap
rust-lang/rust/pull/96260

rustdoc: optimize and refactor doc link resolution
rust-lang/rust/pull/96135

rustdoc: resolve some more doc links early
rust-lang/rust/pull/96261

rustdoc: unindent doc fragments on Attributes construction
rust-lang/rust/pull/96282

rustdoc: make primitive synthetic impls for correct doc module
rust-lang/rust/pull/96301

clippy: add large_include_file lint
rust-lang/rust-clippy/pull/8727

clippy: add macro export exemption to redundant_pub_crate
rust-lang/rust-clippy/pull/8736

clippy: fix missing whitespace in collapsible_else_if suggestion
rust-lang/rust-clippy/pull/8729

clippy: fix needless_match false positive for if-let when the else block doesn't match to given expr
rust-lang/rust-clippy/pull/8700

clippy: new lint bytes count to len
rust-lang/rust-clippy/pull/8711

clippy: manual_split_once: lint manual iteration of SplitN
rust-lang/rust-clippy/pull/8717

clippy: add empty_drop
rust-lang/rust-clippy/pull/8571

clippy: mistyped_literal_suffix: improve integer suggestions, avoid wrong float suggestions
rust-lang/rust-clippy/pull/8742

clippy: wrong_self_convention allows is_* to take &mut self
rust-lang/rust-clippy/pull/8738

rust-analyzer: fix const generic panic in dyn trait
rust-lang/rust-analyzer/pull/12054

rust-analyzer: reduce priority of flyimport completions
rust-lang/rust-analyzer/pull/12074

rust-analyzer: restart proc-macro client when server reload
rust-lang/rust-analyzer/pull/12007

rust-analyzer: display signature help when applying "Add ::<>" assist
rust-lang/rust-analyzer/pull/12032

rust-analyzer: prefer core/alloc over std in auto-imports if #[no_std] is conditional
rust-lang/rust-analyzer/pull/12041

rust-analyzer: improve parameter completion
rust-lang/rust-analyzer/pull/12040

rust-analyzer: index the correct CargoWorkspace with rustc_private
rust-lang/rust-analyzer/pull/12044
Updates from Rust Community

Official
Rust Library Team Aspirations
blog.rust-lang.org

[video] Cross Team Collaboration Fun Times (CTCFT)
www.youtube.com

Project/Tooling Updates
rust-analyzer changelog #126
rust-analyzer.github.io

IntelliJ Rust Changelog #169
intellij-rust.github.io

Slint (UI crate) weekly update
slint-ui.com

Hello, Robyn!
www.sanskar.me

gitoxide - Rich repository information & blazingly fast clone-checkouts
Byron/gitoxide/discussions/398

This week in Databend #39: A Modern Cloud Data Warehouse for Everyone
weekly.databend.rs

This week in Fluvio #30: the programmable streaming platform
www.fluvio.io

Rust9x: Compile Rust code for Windows 95, NT and above
seri.tools

Observations/Thoughts
What a better Rust would look like
kerkour.com

A little fixed point math for embedded audio
jamesmunns.com

Indirect ownership, shallow borrow and self-referential data structures
yoyo-code.com

Rust traits and dependency injection
jmmv.dev

What is raw identifier in rust?
inspektor.cloud

How hard upgrading a Rust JWT library could be?
blog.orhun.dev

The magic of AsRef
swatinem.de

Rust Walkthroughs
Building a crawler in Rust: Implementing the crawler
kerkour.com

DevLog[0]: Building a serverless platform for Rust in 4 weeks
www.shuttle.rs

Unlocking greater performance in the MongoDB Rust Driver via raw BSON and zero copy deserialization
patrickfreed.github.io

Research
[video] Learning and Programming Challenges of Rust: A Mixed-Methods Study
www.youtube.com

Miscellaneous
[audio] clap with Ed Page :: Rustacean Station
rustacean-station.org

[DE] Ferris Talk #8: Wasm loves Rust – WebAssembly und Rust jenseits des...
www.heise.de
Crate of the week: czkawka

This week's crate is czkawka, a GTK-based duplicate finder.
Updates from core

add do yeet expressions to allow experimentation in nightly
rust-lang/rust/pull/96376

enforce Copy bounds for repeat elements while considering lifetimes
rust-lang/rust/pull/95819

ensure that '_ and GAT yields errors
rust-lang/rust/pull/95312

better error messages when collecting into [T; n]
rust-lang/rust/pull/96466

erase type params when suggesting fully qualified path
rust-lang/rust/pull/96347

fix incorrect suggestion for trait bounds involving binary operators
rust-lang/rust/pull/94034

improve Error Messaging for Unconstructed Structs and Enum Variants in Generic Contexts
rust-lang/rust/pull/92569

recover suggestions to introduce named lifetime under NLL
rust-lang/rust/pull/96409

recover most impl Trait and dyn Trait lifetime bound suggestions under NLL
rust-lang/rust/pull/96385

suggest calling method on nested field when struct is missing method
rust-lang/rust/pull/96372

use the correct lifetime binder for elided lifetimes in path
rust-lang/rust/pull/96559

when encountering a binding that could be a const or unit variant, suggest the right path
rust-lang/rust/pull/90988

fix incremental perf regression unsafety checking
rust-lang/rust/pull/96425

support arrays of zeros in Vec's __rust_alloc_zeroed optimization
rust-lang/rust/pull/95362

make (e)println! macros eagerly drop temporaries (for backport)
rust-lang/rust/pull/96490

add VecDeque::extend from vec::IntoIter and slice::Iter specializations
rust-lang/rust/pull/95904

implement str to [u8] conversion for refcounted containers
rust-lang/rust/pull/96078

std: directly use pthread in UNIX parker implementation
rust-lang/rust/pull/96393

hashbrown: correct the implementation of Debug for ValuesMut and IntoValues structures
rust-lang/hashbrown/pull/321

hashbrown: fix underflow in RawIterRange::size_hint
rust-lang/hashbrown/pull/325

stdarch: add stdsimd feature to allow_internal_unstable attribute in feature detect macros
rust-lang/stdarch/pull/1303

stdarch: WASM simd128 pairwise/lane-wise
rust-lang/stdarch/pull/1302

codegen_gcc: add inline assembly sym operands as GCC input operands
rust-lang/rustc_codegen_gcc/pull/163

cargo: add support for workspace inheritance
rust-lang/cargo/pull/10606

clippy: extend extra_unused_lifetimes to handle impl lifetimes
rust-lang/rust-clippy/pull/8737

clippy: needless_late_init: ignore if let, let mut and significant drops
rust-lang/rust-clippy/pull/8617

clippy: redundant_closure fix false positive on coerced closure
rust-lang/rust-clippy/pull/8431

clippy: fix ICE in cast_slice_different_sizes
rust-lang/rust-clippy/pull/8720

clippy: ignore redundant_pub_crate in useless_attribute
rust-lang/rust-clippy/pull/8743

rust-analyzer: reload project on .cargo/config(.toml) changes
rust-lang/rust-analyzer/pull/12093

rust-analyzer: make "inline type alias" work for Self in impls
rust-lang/rust-analyzer/pull/12110

rust-analyzer: diagnose unresolved derive macros
rust-lang/rust-analyzer/pull/12103

rust-analyzer: provide Self in record literal completion
rust-lang/rust-analyzer/pull/12123

rust-analyzer: fix outline mod completion with partial module name
rust-lang/rust-analyzer/pull/12111

rust-analyzer: fix show macro_rules snippet in blocks
rust-lang/rust-analyzer/pull/12098
Updates from Rust Community

Foundation
A good start to the year!
foundation.rust-lang.org

Project/Tooling Updates
rust-analyzer changelog #127
rust-analyzer.github.io

Redox OS 0.7.0
www.redox-os.org

Plotters is back!
aaronerhardt.github.io

Slint (UI crate) weekly update
slint-ui.com

Fornjot (Code-CAD in Rust) - Weekly Dev Log - 2022-W16/W17 (Post-Vacation Edition)
www.fornjot.app

BonsaiDb (NoSQL Database) April Update: Dogfooding and Fixing Bugs
bonsaidb.io

This week in Databend #40: A Modern Cloud Data Warehouse for Everyone
weekly.databend.rs

This week in Fluvio #31: the programmable streaming platform
www.fluvio.io

Observations/Thoughts
A shiny future with GATs
jackh726.github.io

C++ & Rust: Generics and Specialization
www.tangramvision.com

The Better Alternative to Lifetime GATs
sabrinajewson.org

Bugs that the Rust compiler catches for you
kerkour.com

Creating an Easy Mode for Rust
tim.mcnamara.nz

[video] Async Rust: Portability and Interoperability - Nick Cameron - Rust Linz, April 2022
www.youtube.com

[video] Rust for the Kubernetes Ecosystem - Deepu K Sasidharan - Rust Linz, April 2022
www.youtube.com

[audio] Game Development with Rust and WebAssembly with Eric Smith
rustacean-station.org

Rust Walkthroughs
Patching Cargo Dependencies
gatowololo.github.io

Building a crawler in Rust: Scraping and Parsing HTML
kerkour.com

Save 5 minutes web scraping with rust
domenicoluciani.com

Building a WebAssembly-powered serverless platform
blog.scottlogic.com

Self-referential structs and alternatives
swatinem.de

[video] Getting good at SNES games through DLL injection
fasterthanli.me

Research
Stay Safe under Panic: Affine Rust Programming with Multiparty Session Types
arxiv.org

Rusty Links in Local Chains
arxiv.org
👍2
Crate of the week: shuttle

This week's crate is shuttle, a rustic declarative deployment solution for and at your service.
Updates from Rust Community

Official
Security advisory: malicious crate rustdecimal
blog.rust-lang.org

CTCFT 2022-05-16 Agenda
blog.rust-lang.org

Newsletters
Rust Nigeria Community Newsletter #5
rustnigeria.curated.co

This Month in Rust OSDev: April 2022
rust-osdev.com

Project/Tooling Updates
rust-analyzer changelog #128
rust-analyzer.github.io

Fornjot 0.6
www.fornjot.app

Announcing the Kani Rust Verifier Project
model-checking.github.io

Slint (UI crate) weekly update -- Version 0.2.2 Release
slint-ui.com

This week in Fluvio #32: the programmable streaming platform
www.fluvio.io

Rocket's 2nd v0.5 Release Candidate - Rocket Web Framework
rocket.rs

rustc_codegen_gcc: Progress Report #11
blog.antoyo.xyz

GCC Rust Monthly Report #16 April 2022
thephilbert.io

RepliByte - An open-source tool to seed your dev database with real data
www.reddit.com

Introducing Crane: Composable and Cacheable Builds with Cargo and Nix
ipetkov.dev

The run-up to v1.0 for Postcard
jamesmunns.com

Observations/Thoughts
Programming languages are platforms, not products
kerkour.com

Introducing Rust in security research
tweedegolf.nl

Xilem: an architecture for UI in Rust
raphlinus.github.io

Modeling Finite State Machines with Rust | Ramnivas Laddad
www.ramnivas.com

Secure computation in Rust: Using Intel's SGX instructions with Teaclave and Fortanix
www.notamonadtutorial.com

Securing Crates
tl8.co

Over-Engineering A Fairly Simple Coding Challenge
ada-x64.github.io

Building Rust code for my OpenWrt Wi-Fi router
blog.dend.ro

Lisp interpreter in Rust
vishpat.github.io

Demystifying Rust Embedded HAL Split and Constrain Methods
apollolabsblog.hashnode.dev

An O(1) Generic Blog Post About Rust
peterkos.me

Rust Walkthroughs
Building a crawler in Rust: Crawling a JSON API
kerkour.com

Rust-raspberrypi-OS-tutorials: Tutorial 17 - Kernel Symbols
rust-embedded/rust-raspberrypi-OS-tutorials/tree/master/17_kernel_symbols#readme

Rust-raspberrypi-OS-tutorials: Tutorial 18 - Backtracing
rust-embedded/rust-raspberrypi-OS-tutorials/tree/master/18_backtrace#readme

Parsing/Recursive Descent Parser
www.huy.rocks

Converting Integers to Floats Using Hyperfocus
blog.m-ou.se

Easy Lossless Trees with Nom and Rowan
blog.kiranshila.com

Research
Evolving Collaboration, Dependencies, and Use in the Rust Open Source Software Ecosystem
arxiv.org

Modeling Interconnected Social and Technical Risks in Open Source Software Ecosystems
arxiv.org

Miscellaneous
Building a startup with Rust
www.shuttle.rs

Decentralized cluster membership implementation in Rust
quickwit.io

Black Hat Rust discount: Happy 2022
kerkour.com

[DE] Redox OS: Ein Betriebssystem, geschrieben in Rust
www.heise.de

[video] Let's Code Minesweeper with Rust and WASM
www.youtube.com

[audio] Rust Safety with Quentin Ochem and Florian Gilcher
rustacean-station.org
👍1
Crate of the week: enum_dispatch

This week's crate is enum_dispatch, a proc-macro-attribute to replace dynamic dispatch with enum dispatch to gain performance.
👍3