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
Updates from core

parser: fix panic in 'const impl' recovery
rust-lang/rust/pull/81876

fix derived PartialOrd operators
rust-lang/rust/pull/81384

borrowck: refactor visited map to a bitset
rust-lang/rust/pull/81132

add suggest mut method for loop
rust-lang/rust/pull/81466

miri: Remove non-power-of-two SIMD vectors
rust-lang/miri/pull/1703

chalk: add Movability to Generator
rust-lang/chalk/pull/685

try fast_reject::simplify_type in coherence before doing full check
rust-lang/rust/pull/81744

fix suggestion to introduce explicit lifetime
rust-lang/rust/pull/81995

make suggestion of changing mutability of arguments broader
rust-lang/rust/pull/81990

optimize Vec::retain
rust-lang/rust/pull/81126

make Vec::split_at_spare_mut public
rust-lang/rust/pull/81687

BTreeMap: disentangle Drop implementation from IntoIter
rust-lang/rust/pull/81486

initialize BTree nodes directly in the heap
rust-lang/rust/pull/81494

stabilize the partition_point feature
rust-lang/rust/pull/81012

add Box::into_inner
rust-lang/rust/pull/80438

stdsimd: add SIMD shuffles for SimdType{2, 4, 8, 16, 32, 64}
rust-lang/stdsimd/pull/62

stdsimd: add bitmasks and simplify mask API
rust-lang/stdsimd/pull/61

libtest: allow multiple filters
rust-lang/rust/pull/81356

cargo: change git dependencies to use HEAD by default
rust-lang/cargo/pull/9133

cargo: emit warning on env variable case mismatch
rust-lang/cargo/pull/9169

crates.io: add COM0 and LPT0 to the list of reserved crate names (Windows users rejoice)
rust-lang/crates.io/pull/3271

clippy: fix suggestions that need parens in from_iter_instead_of_collect lint
rust-lang/rust-clippy/pull/6657

clippy: fix missing_panics_doc warning on unreachable!
rust-lang/rust-clippy/pull/6700

clippy: fix vec_init_then_push false positives
rust-lang/rust-clippy/pull/6697

clippy: downgrade trivial_regex to nursery
rust-lang/rust-clippy/pull/6696

clippy: new lint: bytes_nth
rust-lang/rust-clippy/pull/6695
Updates from Rust Community

Official
Announcing Rust 1.50.0
blog.rust-lang.org

Project/Tooling Updates
IntelliJ Rust changelog #141
intellij-rust.github.io

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

A big release for relm
relm.antoyo.xyz

Observations/Thoughts
The XDG base directory specification and Rust
blog.liw.fi

Zero dependency images (of chaos) in Rust
state.smerity.com

Examples of declarative style in Rust
https://radekvit.medium.com/examples-of-declarative-style-in-rust-9fae89c0fea

Rust 2030 Christmas list: Better cfg
https://gist.github.com/PoignardAzur/8038f5ed7dc8d00e3e9472aca57fb35c

For the Love of Macros
matklad.github.io

The Tokio Upgrade from 0.2 to 1.x
fly.io

Cranelift, Part 2: Compiler Efficiency, CFGs, and a Branch Peephole Optimizer
cfallin.org

[audio] Building with Rust: Luca Palmieri on TrueLayer and Zero to Production
anchor.fm

[audio] Chats with James 008 - Yoshua Wuyts
jamesmunns.com

[video] Rust 1.50 Patch Review
www.youtube.com

Rust Walkthroughs
Actors with Tokio
ryhl.io

Building a microservice with Rust
medium.com/tenable-techblog

Rust is cool - Enums
thatgeoguy.ca

Rust CLI Game of Life tutorial - Part 2
dev.to

Calling Rust from a Cloudflare Worker
dev.to

Validating JSON input with Rust web services
dev.to

What would SQLite look like if written in Rust? -- Part 1
dev.to

Generalizing over Generics in Rust (Part 1) - AKA Higher Kinded Types in Rust
rustyyato.github.io

Procedural Macros: The Basics
blog.turbo.fish

Building an OpenStreetMap app in Rust, Part II
blogg.bekk.no

Look, Ma! No JS! - Compiling Rust to WebAssembly
www.novatec-gmbh.de

Simple ray tracer written in Rust from scratch
dranikpg/simple-rays

Short Circuit Sum in Rust
www.fpcomplete.com

Zero to Production in Rust, Part 7.1 - Skeleton And Principles For A Maintainable Test Suite
www.lpalmieri.com

CCSS Devclub Rust Workshop
www.notion.so

[video] Graphs in Rust: Let's Build a Maze!
youtu.be

Miscellaneous
Cleora - an ultra fast graph embedding tool written in Rust
Synerise/cleora

Cost-based query optimizations in multithreaded environments
vertexclique.com

Writing our own Cheat Engine: Exact Value scanning
lonami.dev

What would SQLite look like if written in Rust? — Part 1
medium.com/the-polyglot-programmer
Crate of the week: firestorm

Despite having no nominations, this week's crate is firestorm, a fast intrusive flamegraph profiling library.
Updates from core

suggest to create a new const item if the fn in the array is a const fn
rust-lang/rust/pull/81503

fixing bad suggestion for _ in const type when a function
rust-lang/rust/pull/81914

simplify eat_digits
rust-lang/rust/pull/81427

precompute ancestors when checking privacy
rust-lang/rust/pull/81574

optimize counting digits in line numbers during error reporting
rust-lang/rust/pull/82248

only store a LocalDefId in some HIR nodes
rust-lang/rust/pull/81611

to digit simplification
rust-lang/rust/pull/82094

reduce size of InterpErrorInfo to 8 bytes
rust-lang/rust/pull/82116

pass large interpreter types by reference, not value
rust-lang/rust/pull/82124

improve assert_eq! and assert_ne!
rust-lang/rust/pull/79100

add Mutex::unlock
rust-lang/rust/pull/81873

stabilize Arguments::as_str
rust-lang/rust/pull/82120

futures: FuturesUnordered: do not poll the same future twice per iteration
rust-lang/futures-rs/pull/2333

remove unsafe impl Send for CompletedTest & TestResult
rust-lang/rust/pull/82302

test: print test name only once on timeout
rust-lang/rust/pull/82349

cargo: propagate lto=off harder
rust-lang/cargo/pull/9182
Updates from Rust Community

Project/Tooling Updates
MoonZoon - New Rust fullstack framework
moonzoon.rs

rust-analyzer Changelog #65
rust-analyzer.github.io

Knurling-rs changelog #17
ferrous-systems.com

Observations/Thoughts
Rust for web development: 2 years later
kerkour.com

Integrating Rust and C++ in Firefox
manishearth.github.io

Building a telnet chat server with Rust and Lunatic
dev.to

Against Packaging Rust Crates
fy.blackhats.net.au

Why building a front-end framework in Rust is hard
lik.ai

Oxidizing Kraken
blog.kraken.com

Maybe We Can Have Nice Things
noncombatant.org

Three Things I Miss About Rust
bennett.dev/

Storages: an alternative to allocators
www.reddit.com

Rust Walkthroughs
Rust ownership, the hard way
chrismorgan.info

Handling Unix Kill Signals in Rust
dev.to

Replacing FastAPI with Rust: Part 5 - Rocket 0.5
dev.to

Running ML models in a game (and in Wasm!)
dev.to

What would SQLite look like if written in Rust? - Part 2
dev.to

A primer on code generation in Cranelift
blog.benj.me

Testing a Hardware Abstraction Layer (HAL)
ferrous-systems.com

Cross Compiling Rust GTK Projects for Windows
nivethan.dev

Procedural Macros: A simple derive macro
blog.turbo.fish

Building an OpenStreetMap app in Rust, Part III
blogg.bekk.no

Generalizing over Generics in Rust (Part 1.5): Mechanisms
rustyyato.github.io

Macros in Rust: A tutorial with examples
blog.logrocket.com

[ES] Pipelines en Rust(II)
yorodm.is-a.dev

[video] Rust for Windows
youtu.be

[video] Crust of Rust: Subtyping and Variance
youtu.be

[video] Learning Rust: Web Server with Actix Web
youtu.be

[video] [series] Rust For Beginners - Watch me code the Rustlings Tutorial
youtube.com

[video] [series] Easy Rust - learn to program in Rust with simple English
youtube.com

Miscellaneous
Python cryptography, Rust, and Gentoo
lwn.net

Mitigating Memory Safety Issues in Open Source Software
security.googleblog.com

matklad @ NEAR
matklad.github.io

Application-wide panic handling
domwillia.ms

Benchmarking low-level I/O: C, C++, Rust, Golang, Java, Python
medium.com/star-gazers

[video] Ask the Expert: Rust at Microsoft
youtu.be

[video] AWS re:Invent 2020: Next-gen networking infrastructure with Rust and Tokio
youtu.be

[video] Interview Part 2/2 with Ashley Williams, Rust Foundation Interim Executive Director
youtu.be
Crate of the week: lever

This week's crate is lever, a library for writing transactional systems.
Updates from core

implement -Z hir-stats for nested foreign items
rust-lang/rust/pull/82258

suggest character encoding is incorrect when encountering random null bytes
rust-lang/rust/pull/81856

suggest returning tail expressions that match return type
rust-lang/rust/pull/81769

improve suggestion for tuple struct pattern matching errors
rust-lang/rust/pull/81235

improve error message when found type is deref of expected
rust-lang/rust/pull/82364

AST: remove some unnecessary boxes
rust-lang/rust/pull/82321

apply lint restrictions from renamed lints
rust-lang/rust/pull/82620

remove storage markers if they won't be used during code generation
rust-lang/rust/pull/78360

remove many RefCells from DocContext
rust-lang/rust/pull/82305

prevent computing Item attributes twice
rust-lang/rust/pull/82265

new mir-opt pass to simplify gotos with const values
rust-lang/rust/pull/80475

add an impl of Error on Arc<impl Error>
rust-lang/rust/pull/80553

make ptr::write const
rust-lang/rust/pull/81167

make char and u8 methods const
rust-lang/rust/pull/82078

slight perf improvement on char::to_ascii_lowercase
rust-lang/rust/pull/81837

stabilize str_split_once
rust-lang/rust/pull/81940

specialize slice::fill with Copy type and u8/i8/bool
rust-lang/rust/pull/81874

futures: future::SelectAll::into_inner
rust-lang/futures-rs/pull/2363

futures: futures_util::stream::SelectAll::push should use &self
rust-lang/futures-rs/pull/2293

cargo: run rustdoc doctests relative to the workspace
rust-lang/cargo/pull/9105

cargo: throw error if CARGO_TARGET_DIR is an empty string
rust-lang/cargo/pull/8939

cargo: add support for [env] section in .cargo/config.toml
rust-lang/cargo/pull/9175

cargo: make it more clear which module is being tested when running cargo test
rust-lang/cargo/pull/9195
Updates from Rust Community

Official
Const generics MVP hits beta!
blog.rust-lang.org

[Inside] Lang team March update
blog.rust-lang.org

Project/Tooling Updates
IntelliJ Rust Changelog #142
intellij-rust.github.io

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

Knurling-rs changelog #18
ferrous-systems.com

Last Month in Flott - March 2021
flott-motion.org

RampMaker 0.2 - Stepper Motor Acceleration Ramp Generator
flott-motion.org

Observations/Thoughts
Why we built the core auth library in Rust (interview with CTO of Oso)
console.dev

Data Manipulation: Pandas vs Rust
able.bio

Achieving warp speed with Rust
https://gist.github.com/little-dude/674de61df7f48547bdcc5bbe2860563d

Evolution of Kube
clux.github.io

Temporal RDO update optimization
dev.to

Introducing The Calypso Chronicles
dev.to

Rust: Beware of Escape Sequences\n
https://d3lm.medium.com/rust-beware-of-escape-sequences-85ec90e9e243#ee0e-58229fc84d02

Introducing Rustybot (part 3 of n)
objectdisoriented.evokewonder.com

Delete Cargo Integration Tests
matklad.github.io

Rust Walkthroughs
C++ to Rust - or how to render your mindset
jduchniewicz.com

Generic impl blocks are kinda like macros...
dev.to

Make a Back-End Number Guessing Game with Rust
dev.to

Captures in closures and async blocks
www.fpcomplete.com

Testing a driver crate
ferrous-systems.com

Using Rust for AWS Lambdas
beanseverywhere.xyz

Always-On Benchmarking in Rust
medium.com/edge-node-engineering

Building an OpenStreetMap app in Rust, Part IV
blogg.bekk.no

Solving Advent of Code 2020 in under a second
timvisee.com

The Case for the Typestate Pattern - Introducing Algebraic Data Types
www.novatec-gmbh.de

[DE] Weniger Frust mit Rust
www.golem.de

[video] Learning Rust: Procedural Macros
youtu.be

[video] Rust proxy server with Warp and Hyper
youtu.be

Miscellaneous
Ferrocene Part 3: The Road to Rust in mission- and safety-critical
ferrous-systems.com

How our AWS Rust team will contribute to Rust's future successes
aws.amazon.com

Librnoscript, Rust, and non-mainstream architectures
people.gnome.org

Always-On Benchmarking In Rust
medium.com/edge-node-engineering

[DE] Weniger Frust mit Rust
www.golem.de
Crate of the week: camino

This week's crate is camino, a library with UTF-8 coded paths mimicking std::os::Path's API.
Updates from core

upgrade to LLVM 12
rust-lang/rust/pull/81451

backport some LLVM compile-time improvements
rust-lang/rust/pull/82783

add natvis for Result, NonNull, CString, CStr, and Cow
rust-lang/rust/pull/82557

change error about unknown attributes to a warning
rust-lang/rust/pull/82702

shrink the size of Rvalue by 16 bytes
rust-lang/rust/pull/82727

move check only relevant in error case out of critical path
rust-lang/rust/pull/82738

add assert_matches! macro
rust-lang/rust/pull/82770

generalize Write impl for Vec<u8> to Vec<u8, A>
rust-lang/rust/pull/82862

avoid unnecessary Vec construction in BufReader
rust-lang/rust/pull/82728

improve slice.binary_search_by()'s best-case performance to O(1)
rust-lang/rust/pull/74024

add {BTreeMap, HashMap}::try_insert
rust-lang/rust/pull/82764

hashbrown: add try_insert
rust-lang/hashbrown/pull/247

cargo: fix filter_platform to run on targets other than x86
rust-lang/cargo/pull/9246

make rustdoc lints a tool lint instead of built-in
rust-lang/rust/pull/80527
Updates from Rust Community

Official
Planning the Rust 2021 Edition
blog.rust-lang.org

Newsletters
This Month in Rust GameDev #19 - February 2021
rust-gamedev.github.io

This Month in Rust OSDev (February 2021)
rust-osdev.com

RiB Newsletter #21 - More Rust and blockchains
www.reddit.com

Project/Tooling Updates
rust-analyzer Changelog #67
rust-analyzer.github.io

rust-gpu v0.3
EmbarkStudios/rust-gpu/releases/tag/v0.3.0

cargo-generate 0.6.0
cargo-generate/cargo-generate/releases/tag/v0.6.0

Automatically generate APIs for datasets using Rust, Arrow and Datafusion
roapi.github.io

Observations/Thoughts
Serverless Rust Testing
www.peakscale.com

Rust's Type System is Turing-Complete
sdleffler.github.io

Why I rewrote my Rust keyboard firmware in Zig: consistency, mastery, and fun
kevinlynagh.com

Calling a private Rust function from outside of its module
tim.mcnamara.nz

Safe, Flexible Aliasing with Deferred Borrows
cfallin.org

Evaluating Memory Models for Graph-Like Data Structures in the Rust Programming Language: Performance and Usability
www.diva-portal.org

Rusts Universes
aloso.github.io

How I significantly improved Giganotes app performance using Rust
www.reddit.com

Rust Walkthroughs
OS in Rust: Incorporate VGA buffer: Part-6
blog.knoldus.com

Writing a 3D Shooter using rg3d - #1 - Character Controller
rg3d.rs

Writing a 3D Shooter using rg3d - #2 - Weapons
rg3d.rs

Writing Pong in Rust for my OS Written in Rust
blog.stephenmarz.com

Replacing FastAPI with Rust: Part 6 - AWS Lambda
dev.to

Creating an Iterator in Rust
aloso.github.io

Building an OpenStreetMap app in Rust, Part V
blogg.bekk.no

[video] Learning Rust: Structs and Traits
youtu.be

[video] Answers to StackOverflow's top Rust programming questions explained
youtu.be

[video] (Live Coding) Learning Timely Dataflow
youtu.be

[FA] [video] Rust in Farsi ツ
www.youtube.com

Miscellaneous
Debian running on Rust coreutils
sylvestre.ledru.info

A friend and I made pipes-rs, a Rust clone of pipes.sh
www.reddit.com

Half of curl's vulnerabilities are C mistakes
daniel.haxx.se

[video] USENIX Enigma 2021 - Quantifying Memory Unsafety and Reactions to It
youtu.be
Crate of the week: Sorceress

This week's crate is Sorceress, a Rust environment for sound synthesis and algorithmic composition.
Updates from core

expand: do not allocate Lrc for allow_internal_unstable list unless necessary
rust-lang/rust/pull/82422

account for if (let pat = expr) {}
rust-lang/rust/pull/82854

introduce proc_macro_back_compat lint, and emit for time-macros-impl
rust-lang/rust/pull/83127

eagerly construct bodies of THIR
rust-lang/rust/pull/82495

store HIR attributes in a side table
rust-lang/rust/pull/79519

add StatementKind::CopyNonOverlapping
rust-lang/rust/pull/77511

tweaks to stable hashing
rust-lang/rust/pull/83064

rustc_query_system: simplify QueryCache::iter
rust-lang/rust/pull/83069

mir-opt-level 4 is the new 3
rust-lang/miri/pull/1737

miri: ensure we catch incorrectly unwinding calls
rust-lang/miri/pull/1744

miri: check callee ABI when Miri calls closures
rust-lang/miri/pull/1743

don't implement mem::replace with mem::swap
rust-lang/rust/pull/83022

fix io::copy specialization using copy_file_range when writer was opened with O_APPEND
rust-lang/rust/pull/82417

added #[repr(transparent)] to core::cmp::Reverse
rust-lang/rust/pull/81879

add Option::get_or_default
rust-lang/rust/pull/82849

implement Extend and FromIterator for OsString
rust-lang/rust/pull/82121

improve sift_down performance in BinaryHeap
rust-lang/rust/pull/81127

fix leak in Vec::extend_from_within
rust-lang/rust/pull/82760

regex: substantially reduce regex stack size
rust-lang/regex/pull/752

clippy: implement new lint: if_then_some_else_none
rust-lang/rust-clippy/pull/6859
Updates from Rust Community

Project/Tooling Updates
MiniWASM - A minimalist Rust WebAssembly project template
thedjinn/MiniWASM

Stepper 0.5 (formerly Step/Dir) - Universal Stepper Motor Interface
flott-motion.org

Rust Analyzer Changelog #68
rust-analyzer.github.io

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

Observations/Thoughts
Why the Starship shell prompt is built in Rust (interview with project creator)
console.dev

Rust vs. Go: Why They’re Better Together
thenewstack.io

Cranelift, Part 3: Correctness in Register Allocation
cfallin.org

Making Great Docs with Rustdoc
www.tangramvision.com

Writing a Postgres SQL Pretty Printer in Rust: Part 1
blog.urth.org

Data Manipulation: Polars vs Rust
able.bio

Rust Walkthroughs
OS in Rust: Incorporate VGA buffer: Part-7
blog.knoldus.com

Rust Koans
crazymykl/rust-koans

How to send emails with Rust
kerkour.com

Writing Pong in Rust for my OS Written in Rust
blog.stephenmarz.com

Arenas in Rust
manishearth.github.io

Zero Downtime Deployments
www.lpalmieri.com

Deploy A Rust Website on Heroku
dev.to

One enum to rule them all
www.jakobmeier.ch

Writing a 3D Shooter using rg3d - #3 - Bots, AI
rg3d.rs

Developing High Performance Apache Cassandra Applications in Rust (Part 1)
www.datastax.com

Strings in Rust
bes.github.io

Rust - Reqwest examples
dev.to

libp2p tutorial: Build a peer-to-peer app in Rust
blog.logrocket.com

[video] Rust for Beginners - Watch me code the Rustlings Tutorial
www.youtube.com

[video] Crust of Rust: The Drop Check (live edition)
www.youtube.com

Miscellaneous
rkyv is faster than {bincode, capnp, cbor, flatbuffers, postcard, prost, serde_json}
davidkoloski.me

100ms delays with Rust on Lambda
www.peakscale.com

Speed of Rust vs C
kornel.ski

Rust Playground At Your Fingertips
www.greyblake.com

totally_safe_transmute, line-by-line
kornel.ski

Rust Graphics Crates
ocboogie/rust-graphics-crates

C++ to Rust - or how to render your mindset
jduchniewicz.com

Paid Online Research: Rust Programmers’ Experience and Challenges
www.personal.psu.edu
Crate of the week: ibig

This week's crate is ibig, a crate of fast big integers.