pub ThisWeekInRust {} – Telegram
pub ThisWeekInRust {}
991 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: cargo-semver-checks

This week's crate is cargo-semver-checks, a CI-friendly tool to ckeck your library's API.
Updates from core

Add diagnostic when using public instead of pub
rust-lang/rust/pull/99903

Expose size_hint() for TokenStream's iterator
rust-lang/rust/pull/99703

suggest dereferencing index when trying to use a reference of usize as index
rust-lang/rust/pull/99671

suggest removing a semicolon and boxing the expressions for if-else
rust-lang/rust/pull/99974

suggest removing the tuple struct field for the unwrapped value
rust-lang/rust/pull/99593

improve cannot move out of error message
rust-lang/rust/pull/99629

don't ICE on invalid dyn calls
rust-lang/rust/pull/99673

chalk: solve auto traits for closures
rust-lang/chalk/pull/755

add Self: ~const Trait to traits with #\[const_trait\]
rust-lang/rust/pull/99704

miri: add default impls for FileDenoscriptor methods
rust-lang/miri/pull/2444

miri: use cargo_metadata in cargo-miri
rust-lang/miri/pull/2450

miri: use real exec on cfg(unix) targets
rust-lang/miri/pull/2426

codegen: use new {re,de,}allocator annotations in llvm
rust-lang/rust/pull/99574

use FxIndexSet for region_bound_pairs
rust-lang/rust/pull/99725

lexer improvements
rust-lang/rust/pull/99884

optimize UnDerefer
rust-lang/rust/pull/99667

implement network primitives with ideal Rust layout, not C system layout
rust-lang/rust/pull/78802

fix slice::ChunksMut aliasing
rust-lang/rust/pull/94247

optimize vec::IntoIter::next_chunk impl
rust-lang/rust/pull/98553

cargo: support for negative --jobs parameter, counting backwards from max CPUs
rust-lang/cargo/pull/10844

rustdoc: add support for #[rustc_must_implement_one_of]
rust-lang/rust/pull/99235

rustdoc: align invalid-html-tags lint with commonmark spec
rust-lang/rust/pull/99873

rustfmt: nicer skip context for macro/attribute
rust-lang/rustfmt/pull/5459

clippy: move assertions_on_result_states to restriction
rust-lang/rust-clippy/pull/9273

clippy: read and use deprecated configuration (as well as emitting a warning)
rust-lang/rust-clippy/pull/9252

clippy: remove "blacklist" terminology
rust-lang/rust-clippy/pull/8974

clippy: unwrap_used: don't recommend using expect when the expect_used lint is not allowed
rust-lang/rust-clippy/pull/9223

rust-analyzer: find original ast node before compute ref match
rust-lang/rust-analyzer/pull/12830

rust-analyzer: find standalone proc-macro-srv on windows too
rust-lang/rust-analyzer/pull/12878

rust-analyzer: publish extension for 32-bit ARM systems
rust-lang/rust-analyzer/pull/12920

rust-analyzer: calculate completions after type anchors
rust-lang/rust-analyzer/pull/12895

rust-analyzer: do completions in path qualifier position
rust-lang/rust-analyzer/pull/12899

rust-analyzer: don't complete marker traits in expression position
rust-lang/rust-analyzer/pull/12901

rust-analyzer: fix pattern completions adding unnecessary braces
rust-lang/rust-analyzer/pull/12898

rust-analyzer: complete path of existing record expr
rust-lang/rust-analyzer/pull/12906
Updates from Rust Community

Official
Increasing the glibc and Linux kernel requirements
blog.rust-lang.org

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

GCC Rust Monthly Report #19 July 2022
thephilbert.io

This Month in hyper: July 2022
seanmonstar.com

Bevy 0.8
bevyengine.org

This week in Fluvio #41: The programmable streaming platform
www.fluvio.io

Fornjot (code-first CAD in Rust) - Weekly Release - 2022-W31
www.fornjot.app

Zellij 0.31.0: Sixel support, search panes and custom status-bar keybindings
zellij.dev

Ogma v0.5 Release
www.kurtlawrence.info

Slint UI crate weekly updates
slint-ui.com

HexoSynth 2022 - Devlog #7 - The DSP JIT Compiler
m8geil.de

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

Observations/Thoughts
Rust linux kernel development
www.jackos.io

Proc macro support in rust-analyzer for nightly rustc versions
fasterthanli.me

Manage keybindings in a Rust terminal application
dystroy.org

Safety
nested.substack.com

Paper Review: Safe, Flexible Aliasing with Deferred Borrows
blog.theincredibleholk.org

Uncovering a Blocking Syscall
chrissardegna.com

nt-list: Windows Linked Lists in idiomatic Rust
colinfinck.de

[audio] Beyond the Hype: Most-loved language – does Rust justify the hype?
blog.scottlogic.com

Rust Walkthroughs
Patterns with Rust types
www.shuttle.rs

Fully generic recursion in Rust
recursion.wtf

Advanced shellcode in Rust
kerkour.com

STM32F4 Embedded Rust at the HAL: Analog Temperature Sensing using the ADC
apollolabsblog.hashnode.dev

[video] Are we web yet? Our journey to Axum
www.youtube.com

[video] Build your Rust lightsaber (my Rust toolkit recommendations)
www.youtube.com

[video] Rust Tutorial Full Course
www.youtube.com

[video] Bevy 0.7 to 0.8 migration guide
www.youtube.com

Research
RRust: A Reversible Embedded Language
blog.erk.dev

Miscellaneous
Meta approves 4 programming languages for employees and devs
www.theregister.com

[DE] Meta setzt auf die Programmiersprachen C++, Python, Hack und neuerdings Rust
www.heise.de
Crate of the week: lending-iterator

This week's crate is lending-iterator, a type similar to std::iter::Iterator, but with some type trickery that allows it to .windows_mut(_) safely.
Updates from Rust Community

Official
Non-lexical lifetimes (NLL) fully stable
blog.rust-lang.org

Rust Compiler Midyear Report for 2022
blog.rust-lang.org

Please welcome Dan to Library Contributors
blog.rust-lang.org

Foundation
Trademark Policy: Review and Survey
foundation.rust-lang.org

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

Project/Tooling Updates
Announcing: MiniRust
www.ralfj.de

Achieving A Completely Open Source Implementation of Apple Code Signing and Notarization
gregoryszorc.com

Announcing Cargo WAPM
adventures.michaelfbryan.com

argmin 0.6.0 and argmin-math 0.1.0 released
argmin-rs.org

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

Fyrox 0.27 Feature Highlights
fyrox.rs

rustc_codegen_gcc: Progress Report #14
blog.antoyo.xyz

IntelliJ Rust: Updates For the 2022.2 Release Cycle
blog.jetbrains.com

Fornjot (code-first CAD in Rust) - Weekly Release - 2022-W32
www.fornjot.app

Fang, async background processing for Rust
pxp9.github.io

HexoSynth 2022 - Devlog #8 - A Visual DSP Programming Language
m8geil.de

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

Observations/Thoughts
Using unwrap() in Rust is Okay
blog.burntsushi.net

A performance retrospective using Rust (part 3)
agourlay.github.io

The State Of Rust In 2022
deprogrammaticaipsum.com

Blocking Sockets and Async
www.thecodedmessage.com

How does Rust async work?
aidancully.blogspot.com

Basic Operator Overloading with Traits
rsdlt.onrender.com

Rust Walkthroughs
Understanding Rust generics and how to use them
blog.logrocket.com

Hot Reloading Rust — for Fun and Faster Feedback Cycles
robert.kra.hn

The Magic of zerocopy (compared with scroll)
swatinem.de

Not a Yoking Matter (Zero-Copy #1)
manishearth.github.io

Zero-Copy All The Things! (Zero-Copy #2)
manishearth.github.io

So Zero It's ... Negative? (Zero-Copy #3)
manishearth.github.io

What is server middleware
www.shuttle.rs

Rust and WebAssembly without a Bundler
tung.github.io

What are Rust's HTTP extensions?
blog.adamchalmers.com

Mapping into the serde data model
owengage.com

Generate Enum Variant with associated values in Rust Analyzer
dorianlistens.com

7 ways to pass a string between 🦀 Rust and C
dev.to

STM32F4 Embedded Rust at the HAL: I2C Temperature & Pressure Sensing with BMP180
apollolabsblog.hashnode.dev

Miscellaneous
EuroRust CFP
www.papercall.io

Bevy Jam #2
itch.io

Rust Arcade: Designing a Custom Arcade Machine
www.youtube.com
Crate of the week: fang

This week's crate is fang an async background processing crate.
Updates from Rust Community

Official
Announcing Rust 1.63.0
blog.rust-lang.org

Contribute to the diagnostic translation effort!
blog.rust-lang.org

Newsletters
This Month in Rust GameDev #36
gamedev.rs

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

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

Introducing Rust Sitter
www.shadaj.me

SecureStore 0.100: KISS, git-versioned secrets management for rust
neosmart.net

This week in Fluvio #42: The programmable streaming platform
www.fluvio.io

HexoSynth 2022 - Devlog #9 - MIDI Note and CC Handling
m8geil.de

Rust Search Extension v1.8.0 has been released.
rust.extension.sh

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

Observations/Thoughts
Comparing Rust's and C++'s Concurrency Library
blog.m-ou.se

Kernel Driver with Rust in 2022
not-matthias.github.io

IntoIterator and the for ... in Syntax in Rust
www.geekabyte.io

Rust in Perspective — linusw
people.kernel.org

6 Things I Wish I Knew Starting with Embedded Rust
apollolabsblog.hashnode.dev

Rust Walkthroughs
Exploring Traits with Erased serde
www.thecodedmessage.com

Rust and Neovim - A Thorough Guide and Walkthrough
rsdlt.github.io

Get Started with Rust: Structs
serokell.io

Hooking Go from Rust - Hitchhiker’s Guide to the Go-laxy
metalbear.co

Using the Kani Rust Verifier on Tokio Bytes
model-checking.github.io

[video] Rust image viewer from scratch
www.youtube.com

[video] Rust is not a faster horse (why Rust is different)
www.youtube.com

[video] Fiberplane's path to full-stack WASM development
www.youtube.com

Research
Integrating fault injection in development workflows
blog.ledger.com

Miscellaneous
Rust Iterator pattern with iter(), into_iter() and iter_mut() methods
www.geekabyte.io

[DE] Rust: Makros - Einführung in ein unverzichtbares Werkzeug
www.heise.de

[DE] Rust 1.63 bekommt Threads, die sich Daten ausleihen dürfen
www.heise.de
Crate of the week: cargo-pgo

This week's crate is cargo-pgo, a cargo subcommand to compile your code with profile-guided optimization and BOLT for good measure.
👍2
Updates from Rust Community

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

Slint UI crate weekly updates
slint-ui.com

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

What's new in axum 0.6.0-rc.1
tokio.rs

HexoSynth Modular Synthesizer in Rust - Devlog #10: Alpha-1 Release
m8geil.de

Fornjot (code-first CAD in Rust) - Weekly Release - 2022-W34
www.fornjot.app

Observations/Thoughts
Come contribute to Salsa 2022!
smallcultfollowing.com

State Machines II
blog.yoshuawuyts.com

Rust Walkthroughs
Tauri + Async Rust Process
rfdonnelly.github.io

Writing a container in Rust
litchipi.github.io

Experimentally compiling PHP code to Rust - Ryan Chandler
ryangjchandler.co.uk

STM32F4 Embedded Rust at the HAL: GPIO Interrupts
apollolabsblog.hashnode.dev

[video] Rust Traits vs C++ Concepts
www.youtube.com

[video] Writing Procedural Macros
www.youtube.com

[video] Get under the hood of Rust Language with Assembly!!
www.youtube.com

[video] Scoped threads in Rust 1.63
www.youtube.com

[video] 1Password Developer Fireside Chat: Demystifying Atomics
www.youtube.com
👍2
Crate of the week: sass-embedded

This week's crate is sass-embedded, a library to communicate with Embedded Dart Sass.
Updates from core

add the armv4t-none-eabi target to the supported_targets
rust-lang/rust/pull/100641

stabilize split debuginfo on linux
rust-lang/rust/pull/98051

add GDB/LLDB pretty-printers for NonZero types
rust-lang/rust/pull/98301

fix const: dynamic checks for accessing statics
rust-lang/const-eval/pull/70

improve const mismatch FulfillmentError
rust-lang/rust/pull/100437

provide structured suggestion for hashmap[idx] = val
rust-lang/rust/pull/101002

suggest adding a missing semicolon before an item
rust-lang/rust/pull/100565

suggest alternatives when trying to mutate a HashMap/BTreeMap via indexing
rust-lang/rust/pull/100906

use smaller span for suggestions
rust-lang/rust/pull/101055

migrate rustc_attr crate diagnostics
rust-lang/rust/pull/100836

migrate rustc_interface diagnostics
rust-lang/rust/pull/100808

migrate rustc_lint errors to SessionDiagnostic
rust-lang/rust/pull/100776

migrate rustc_plugin_impl to SessionDiagnostic
rust-lang/rust/pull/100768

migrate rustc_ty_utils to SessionDiagnostic
rust-lang/rust/pull/100735

migrate ast lowering to session diagnostic
rust-lang/rust/pull/100724

migrate part of rustc_infer to session diagnostic
rust-lang/rust/pull/100843

migrate rustc_driver to SessionDiagnostic
rust-lang/rust/pull/100890

migrate rustc_mir_dataflow to diagnostic structs
rust-lang/rust/pull/100744

miri: adding support for external C functions that have integer (or empty) args and/or returns
rust-lang/miri/pull/2363

miri: skip field retagging on ZSTs, it can take forever
rust-lang/miri/pull/2517

miri: strengthen C++20 SC accesses
rust-lang/miri/pull/2512

avoid cloning a collection only to iterate over it
rust-lang/rust/pull/100497

reduce code size of assert_matches_failed
rust-lang/rust/pull/100933

shrink FnAbi
rust-lang/rust/pull/100999

shrink thir::Expr
rust-lang/rust/pull/100944

stabilize #![feature(label_break_value)]
rust-lang/rust/pull/99332

stabilize const_ptr_offset_from
rust-lang/rust/pull/96240

stabilize std::io::read_to_string
rust-lang/rust/pull/100337

add a File::create_new constructor
rust-lang/rust/pull/98801

add next_up and next_down for f32/f64
rust-lang/rust/pull/100578

is_whitespace() performance improvements
rust-lang/rust/pull/99487

add pointer masking convenience functions
rust-lang/rust/pull/96946

BTree: evaluate static type-related check at compile time
rust-lang/rust/pull/95005

fix Ipv6Addr::is_unicast_global to check for unicast global scope rebase
rust-lang/rust/pull/99947

windows: optimize Wtf8Buf::into_string for the case where it contains UTF-8
rust-lang/rust/pull/96869

properly forward ByRefSized::fold to the inner iterator
rust-lang/rust/pull/100220

make slice::{split_at, split_at_unchecked} const functions
rust-lang/rust/pull/100076

std::io: migrate ReadBuf to BorrowBuf/BorrowCursor
rust-lang/rust/pull/97015

rustdoc: rewrite error index generator to greatly reduce the size of the pages
rust-lang/rust/pull/100922

clippy: implemented suspicious_to_owned lint to check if to_owned is called on a Cow
rust-lang/rust-clippy/pull/8984

clippy: new lint: Raw slice pointer cast
rust-lang/rust-clippy/pull/9247

clippy: new multi_assignment lint
rust-lang/rust-clippy/pull/9379

clippy: don't lint needless_return if return has attrs
rust-lang/rust-clippy/pull/9381

clippy: don't lint literal None from expansion
rust-lang/rust-clippy/pull/9389

clippy: ignore match_like_matches_macro when there is comment
rust-lang/rust-clippy/pull/9276

clippy: remove parenthesis from unnecessary_cast suggestion
rust-lang/rust-clippy/pull/9385

clippy: rename manual_empty_string_creation and move to pedantic
rust-lang/rust-clippy/pull/9366

rust-analyzer: do not substitute Self when in same impl block
rust-lang/rust-analyzer/pull/13090

rust-analyzer: move empty diagnostics workaround back into the server
rust-lang/rust-analyzer/pull/13133

rust-analyzer: resolve doc links on impl blocks
rust-lang/rust-analyzer/pull/13100

rustc-perf: add a metric containing the size of generated documentation
rust-lang/rustc-perf/pull/1417
Updates from Rust Community

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

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

Diesel 2.0.0
diesel.rs

Helix editor 22.08 released
helix-editor.com

This Month in hyper: August 2022
seanmonstar.com

Fornjot - Weekly Release - 2022-W35
www.fornjot.app

Announcing Sycamore v0.8.0
sycamore-rs.netlify.app

Announcing finl_unicode 1.0.0
www.finl.xyz

Slint UI crate weekly updates
slint-ui.com

argmin 0.7.0 and argmin-math 0.2.0 released
argmin-rs.org

Update-informer v0.5.0
www.mgrachev.com

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

Observations/Thoughts
Solving The Witness with Z3 (Part 1)
www.techofnote.com

Static streams for faster async proxies
blog.adamchalmers.com

Building an authentication system in Rust using session tokens
www.shuttle.rs

OpenTelemetry Distributed Tracing in Rust
www.aspecto.io

Toward fearless cargo update
predr.ag

Rust Walkthroughs
Learning Rust: Combinators
kerkour.com

Integrating Rust With Android Development — Final Part
blog.devgenius.io

Rewriting my blog in Rust for fun and profit
www.jonashietala.se

Building A Gamedev Maths Library In Rust From Scratch – Alex Dixon
www.polymonster.co.uk

Pattern Matching and Backwards Compatibility
seanmonstar.com

Writing FreeBSD Kernel Modules in Rust
research.nccgroup.com

[series] Ruxel - Building a Ray Tracer with Rust Part 1
rsdlt.github.io

[series] STM32F4 Embedded Rust at the HAL: Timer Interrupts - Part 2
apollolabsblog.hashnode.dev

[video] Using Rust to understand The Little Schemer
www.youtube.com

[video] Building a Rust Multithreaded Web Server (chapter 20 of Rust Book)
www.youtube.com

Miscellaneous
The Bombercrab Challenge 💥💣🦀
blog.tonari.no

[video] Unsafe Rust is not C
www.youtube.com

[video] Building a space station in Rust (Simple Rust patterns)
www.youtube.com

[video] Arvid Norberg: What C++ engineers can learn from Rust
www.youtube.com
👍1
Crate of the week: bytehound

This week's crate is bytehound a memory profiler for Rust.
Updates from Rust Community

Foundation
Hello JFrog!
foundation.rust-lang.org

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

Project/Tooling Updates
Announcing Unreal Rust
maikklein.github.io

Introducing cxx-async
pcwalton.github.io

Arti 1.0.0 is released: Our Rust Tor implementation is ready for production use
blog.torproject.org

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

rustc_codegen_gcc: Progress Report #15
blog.antoyo.xyz

Lapce editor 0.2.0 released
lapce/lapce/releases/tag/v0.2.0

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

HexoSynth 2022 - Devlog #11: VST3/CLAP Plugin Integration
m8geil.de

Fornjot (code-first CAD in Rust) - Weekly Release - 2022-W36
www.fornjot.app

One year of Relm4
relm4.org

Slint UI crate weekly updates
slint-ui.com

Observations/Thoughts
How to Use Rust Traits, Generics and Bounds
rsdlt.github.io

Wasmtime 1.0: A Look at Performance
bytecodealliance.org

Understanding primitive data types in Rust
blog.logrocket.com

[video] RustConf 2022 Talks
www.youtube.com

[video] Rust Education Workshop 2022
www.youtube.com

[audio] Fyrox with Dmitry Stepanov
rustacean-station.org

Rust Walkthroughs
Filtering a Vector with SIMD Instructions (AVX-2 and AVX-512)
quickwit.io

Learning Rust: Async Combinators
kerkour.com

Solving The Witness with Z3 (Part 2)
www.techofnote.com

How to build a (simple) blog using Rust
mortenvistisen.com

STM32F4 Embedded Rust at the HAL: The RTIC Framework
apollolabsblog.hashnode.dev

[video] Nine Rules for Elegant Rust Library APIs
www.youtube.com

Miscellaneous

[DE] Security: FreeBSD-Kernel bekommt experimentelle Rust-Patches

www.golem.de

[DE] Security: FreeBSD-Kernel bekommt experimentelle Rust-Patches
www.golem.de


Random File Lines and Iterator Items: Understanding Reservoir Sampling with Rust

towardsdatascience.com

Random File Lines and Iterator Items: Understanding Reservoir Sampling with Rust
towardsdatascience.com
👍1
Crate of the week: sql-query-builder

This week's crate is sql-query-builder, a library to write SQL queries in a simple and composable way.