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: dotenv-linter

This week's crate is dotenv-linter, a lightning fast linter for .env files.
Updates from core

improve unknown external crate error
rust-lang/rust/pull/81046

gracefully handle loop labels missing leading ' in different positions
rust-lang/rust/pull/81236

improve diagnostics when parsing angle args
rust-lang/rust/pull/80065

permit mutable references in all const contexts
rust-lang/rust/pull/78578

prevent query cycles in the MIR inliner
rust-lang/rust/pull/68828

mir: improve size_of handling when arg is unsized
rust-lang/rust/pull/81243

implement Error for &(impl Error)
rust-lang/rust/pull/75180

change branching in iter.skip()
rust-lang/rust/pull/80715

BufWriter: Provide into_raw_parts
rust-lang/rust/pull/79705

fix soundness issue for replace_range and range
rust-lang/rust/pull/81169

avoid hash_slice in VecDeque's Hash implementation
rust-lang/rust/pull/81170

turn alloc's force_expr macro into a regular macro_rules
rust-lang/rust/pull/81241

hashbrown: add try_insert_no_grow method on RawTable
rust-lang/hashbrown/pull/229

fix a bug in Cargo's cyclic dep graph detection
rust-lang/cargo/pull/9075

cargo: add some extra help to cargo new and invalid package names
rust-lang/cargo/pull/9098

rustdoc: fix rendering of stabilization version for trait implementors
rust-lang/rust/pull/81302

clippy: manual_filter_map and manual_find_map
rust-lang/rust-clippy/pull/6591

clippy: new lint: exhaustive_enums, exhaustive_structs
rust-lang/rust-clippy/pull/6617
Updates from Rust Community

Official
[Inside] Rust & the case of the disappearing stack frames
blog.rust-lang.org

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

Performance improvement on front-end generated by rustdoc
blog.guillaume-gomez.fr

Criterion.rs v0.3.4 and Iai 0.1.0
bheisler.github.io

The RustyHermit Unikernel
rust-osdev.com

Introducing usb-ids.rs
blog.yossarian.net

⚡️ Dotenv-linter v3.0.0: Overview 🦀
evrone.com

Observations/Thoughts
Porting a serverless chatbot from Python to Rust
blog.console.dev

Unsafe Rust: How and when (not) to use it
blog.logrocket.com

Rust and Go department directories
dev.to

Parsing real-world data with Rust: introducing the alias_all attribute in Serde
deaddabe.fr

Rust Walkthroughs
Wrapping Errors in Rust
edgarluque.com

Implementing Raft's Leader Election in Rust
laurocaetano.com

2048 WASM
dev.to

Implementing an LRU Cache in Rust
dev.to

JSON input validation in Warp
dev.to

Make A Language - Part Nineteen: Code Representations
arzg.github.io

Make A Language - Part Twenty: Testing
arzg.github.io

How to optimise compilation times with Rust
lemmy.ml

Automatic flamegraphs for benchmarks with Criterion
www.jibbow.com

Implementing Raft's Leader Election in Rust
laurocaetano.com

First time using Yew: A Go game board in just a few lines of Rust.
radim.xyz

[ES] El juego de la vida usando Rust y Iced
irvingfisica/iced_examples/blob/master/Life.md

Miscellaneous
Are we learning yet?
www.arewelearningyet.com/

Microsoft Opens Up Old Win32 APIs to C# and Rust, More Languages to Come
visualstudiomagazine.com

A fix for the LLVM noalias bug has landed in time for LLVM 12 branches
www.reddit.com

Dynamic type systems aren't even simpler
hisham.hm

Everywhere I go, I miss Rust's `enum`s
www.reddit.com

Open-Source Rust: 24 Awesome Frameworks, Projects, and Libraries
serokell.io
Crate of the week: aquamarine

This week's crate is aquamarine bringing you inline diagrams for your rustdocs.
Thanks to @mersinvald for fixing the bot!
Updates from core

rustc: stabilize -Zrun-dsymutil as -Csplit-debuginfo
rust-lang/rust/pull/79570

point only at generic arguments when they are unexpected
rust-lang/rust/pull/79591

improve diagnostics for Precise Capture
rust-lang/rust/pull/81062

account for existing _ field pattern when suggesting ..
rust-lang/rust/pull/81422

tweak suggestion for missing field in patterns
rust-lang/rust/pull/81416

visit only statements in always live locals
rust-lang/rust/pull/81440

avoid memory allocation when removing dead blocks
rust-lang/rust/pull/81470

make hitting the recursion limit in projection non-fatal
rust-lang/rust/pull/81055

clashing_extern_declarations: use symbol interning to avoid string alloc
rust-lang/rust/pull/81453

miri: add random failures to compare_exchange_weak
rust-lang/miri/pull/1686

trying to Vec::shrink_to greater than capacity should be no-op
rust-lang/rust/pull/81335

implement Rust 2021 panic
rust-lang/rust/pull/80851

implement missing AsMut<str> for str
rust-lang/rust/pull/80279

implement io::Seek for io::Empty
rust-lang/rust/pull/78044

let io::copy reuse BufWriter buffers
rust-lang/rust/pull/78641

add 'Box::downcast()fordyn Any + Send + Sync`
rust-lang/rust/pull/80945

add unwrap_unchecked() methods for Option and Result
rust-lang/rust/pull/80876

add core::stream::Stream
rust-lang/rust/pull/79023

stabilize core::slice::fill_with
rust-lang/rust/pull/81048

stabilize unsigned_abs
rust-lang/rust/pull/80959

stabilize raw ref macros
rust-lang/rust/pull/80886

stabilize by-value [T; N] iterator core::array::IntoIter
rust-lang/rust/pull/80470

stabilise cargo test -- --include-ignored
rust-lang/rust/pull/80053

stabilize Arc::{increment, decrement}_strong_count
rust-lang/rust/pull/79285

stabilize Seek::stream_position (feature seek_convenience)
rust-lang/rust/pull/70904

optimize decimal formatting of 128-bit integers
rust-lang/rust/pull/81484

stabilize int_bits_const
rust-lang/rust/pull/81590

hashbrown: reduce the amount of llvm IR instantiated
rust-lang/hashbrown/pull/205

libtest: wait for test threads to exit after they report completion
rust-lang/rust/pull/81367

cargo: impl warn for locked install without Cargo.lock
rust-lang/cargo/pull/9108

rustdoc: improve docblock readability on small screen
rust-lang/rust/pull/81563
Updates from Rust Community

Newsletters
RiB Newsletter #20 - Old fashioned chill
www.reddit.com

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

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

Llama Rust SDK preview 0.1.3
ericsink.com

Gfx-rs Release of v0.7
gfx-rs.github.io

Open-sourcing Datanymizer: in-flight template-driven data anonymization
evrone.com

Announcing Step/Dir - Universal Stepper Motor Interface
flott-motion.org

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

Krustlet v0.6.0
deislabs/krustlet/releases/tag/v0.6.0

Observations/Thoughts
Is Rust a Functional Programming Language?
robert.kra.hn

Rust Collections Case Study: BTreeMap
cglab.ca

Saving some allocations
vorner.github.io

Bringing Stack Clash Protection to Clang/X86 - the Open Source Way
blog.llvm.org

Announcing Krator: Build Kubernetes Operators with state machines.
deislabs.io

Rust Walkthroughs
Returning Rust Iterators
depth-first.com

How to Read Rust Functions, Part 1
www.possiblerust.com

Parsing PDF Documents in Rust
adventures.michaelfbryan.com

Building and deploying Rust utilities
robert.kra.hn

Learning to Fly: Let's create a simulation in Rust! (pt 2)
pwy.io

Rust made my open source project 1000x faster
www.reddit.com

Introducing Drogue Device
blog.drogue.io

3 Things to Try When You Can't Make A Trait Object
www.possiblerust.com

Making concurrency fearless with Rust (for C++ developers)
https://radekvit.medium.com/making-concurrency-fearless-with-rust-for-c-developers-d5d8da50a452

Exploring WebSocket with Rust and Tide
javierviola.com

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

[PL] CrabbyBird #5 Obsługa kolizji
postacnormalna.pl

Miscellaneous
RustBelt: Securing the Foundations of the Rust Programming Language
people.mpi-sws.org

Polymorphisation: Improving Rust compilation times through intelligent monomorphisation
davidtw.co

A Memory Safe TLS Module for the Apache HTTP Server
www.abetterinternet.org

Chats with James: 006 - Bryan Cantrill
jamesmunns.com

Long range networking with LoRa: an overview featuring a Rust modem driver
tweedegolf.nl
Crate of the week: fancy-regex

This week's crate is fancy-regex a regex implementation using regex for speed and backtracking for fancy features.
Updates from core

add AArch64 big-endian and ILP32 targets
rust-lang/rust/pull/81455

improve handling of spans around macro result parse errors
rust-lang/rust/pull/81608

identify unreachable subpatterns more reliably
rust-lang/rust/pull/80632

fix issues with move closures and mutability
rust-lang/rust/pull/80092

const_evaluatable: consider sub-expressions to be evaluatable
rust-lang/rust/pull/81577

introduce future-compatibility warning for forbidden lint groups
rust-lang/rust/pull/81556

Box the biggest ast::ItemKind variants
rust-lang/rust/pull/81405

improve error message for disallowed ptr-to-int casts in const eval
rust-lang/rust/pull/81779

typeck: emit structured suggestions for tuple struct syntax
rust-lang/rust/pull/81737

faster few span methods
rust-lang/rust/pull/81735

fix bug with assert!() calling the wrong edition of panic!()
rust-lang/rust/pull/81647

make Allocator object-safe
rust-lang/rust/pull/81730

add Frames Iterator for Backtrace
rust-lang/rust/pull/81022

add Vec::extend_from_within method under vec_extend_from_within feature gate
rust-lang/rust/pull/79015

BTreeMap: make Ord bound explicit, compile-test its absence
rust-lang/rust/pull/81610

implement TrustedLen for Fuse<I: TrustedLen>
rust-lang/rust/pull/81599

rename Iterator::fold_first to reduce and stabilize it
rust-lang/rust/pull/79805

stabilize the Wake trait
rust-lang/rust/pull/74304

stabilize peekable_next_if
rust-lang/rust/pull/80011

stabilize poison API of Once, rename poisoned()
rust-lang/rust/pull/81745

stabilize remaining integer methods as const fn
rust-lang/rust/pull/80962

futures-rs: avoid once_cell in static wakers
rust-lang/futures-rs/pull/2332

hashbrown: implement From<HashMap<T, ()>> for HashSet<T>
rust-lang/hashbrown/pull/235

cargo: fix panic with doc collision orphan
rust-lang/cargo/pull/9142

cargo: fix env/cfg set for cargo test and cargo run
rust-lang/cargo/pull/9122

make rustdoc respect --error-format short in doctests
rust-lang/rust/pull/81675

clippy: fix let_underscore_drop false positive
rust-lang/rust-clippy/pull/6682

clippy: fix let_and_return false positive
rust-lang/rust-clippy/pull/6659

clippy: don't trigger exhaustive_structs for structs with private fields
rust-lang/rust-clippy/pull/6661

clippy: add new lint missing_panics_doc
rust-lang/rust-clippy/pull/6523

compiletest: Add option to emit compiler stderr per bitwidth
rust-lang/rust/pull/81817
Updates from Rust Community

Official
[Foundation] Hello World!
foundation.rust-lang.org

[Inside] 1.50.0 pre-release testing
blog.rust-lang.org

Newsletters
This Month in Rust GameDev #18 - January 2021
rust-gamedev.github.io

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

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

Launching wasm.rs: a collection of crates, a community
https://yrashk.medium.com/launching-wasm-rs-a-collection-of-crates-a-community-4344d2ba75b3

A Memory Safe TLS Module for the Apache HTTP Server
www.abetterinternet.org

Observations/Thoughts
Benchmarking Tokio Tasks and Goroutines
www.reddit.com

A Better Rust Profiler
matklad.github.io

An unsafe tour of Rust's Send and Sync
nyanpasu64.github.io

Improving texture atlas allocation in WebRender
nical.github.io

Rust Walkthroughs
Async Rust: Futures, Tasks, Wakers; Oh My!
msarmi9.github.io

Rust for Haskell Programmers!
mmhaskell.com

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

Where everything went wrong...
msirringhaus.github.io

Rust for Clojurists
https://gist.github.com/oakes/4af1023b6c5162c6f8f0

[ES] El formato RON: Rusty Object Notation
blog.adrianistan.eu

[video] 1Password Developer Fireside Chat: Introduction to Rust Macros
youtu.be

[video] Dynamic vs Static Dispatch in Rust
youtu.be

Miscellaneous
Congratulations, Rustaceans, on the creation of the Rust Foundation!
aws.amazon.com

Microsoft joins Rust Foundation
cloudblogs.microsoft.com

Google joins the Rust Foundation
opensource.googleblog.com

Mozilla Welcomes the Rust Foundation
blog.mozilla.org

Trusted Programming - Our Rust Mission at Huawei
trusted-programming.github.io

YSK: VSCode's most recent update fixed a quirk in Rust workflows
www.reddit.com

curl supports rustls
daniel.haxx.se

Architecting Artichoke Ruby: A Modular Ruby implementation written in Rust
artichoke/artichoke/blob/21045d8f1086c669dd428a3b5bdcc4a58e13acec/ARCHITECTURE.md

[video] Interview with Ashley Williams, Rust Foundation Interim Executive Director (Part 1)
youtu.be
Crate of the week: threadIO

This week's crate is threadIO, a crate that makes disk IO in a background thread easy and elegant.
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