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

shrink ParamEnv to 16 bytes
rust-lang/rust/pull/73978

stabilize const mem::forget
rust-lang/rust/pull/73887

typeck: adding type information to projection
rust-lang/rust/pull/73870

clippy: some accuracy lints for floating point operations
rust-lang/rust-clippy/pull/5443

correctly mark the ending span of a match arm
rust-lang/rust/pull/74125

only allow repr(i128/u128) on enum
rust-lang/rust/pull/74109

hide &mut self methods from Deref in sidebar if there are no DerefMut impl for the type
rust-lang/rust/pull/74107

only add CFGuard on windows-msvc targets
rust-lang/rust/pull/74103

add VecDeque::range* methods
rust-lang/rust/pull/74099

add read_exact_at and write_all_at to WASI's FileExt
rust-lang/rust/pull/74076

clippy: new lint: match_like_matches_macro
rust-lang/rust-clippy/pull/5769

Optimize is_ascii for str and [u8]
rust-lang/rust/pull/74066

arch: added f32 and f64 unaligned stores and loads from avx512f set
rust-lang/stdarch/pull/873

hashbrown: add HashSet::drain_filter method
rust-lang/hashbrown/pull/179
News

Announcing Rustup 1.22.1
blog.rust-lang.org

Lang team design meeting: path to membership
blog.rust-lang.org

Perspective on Rust Community Moderation
www.reddit.com

Programming Servo: the bird’s-eyes view
medium.com/programming-servo

Faster Integer Parsing (Rust port)
rust-malaysia.github.io

Learning Rust: Let's Build a Parser
codeandbitters.com

nnnoiseless: porting audio code from C to rust
jneem.github.io

The Soul of a New Debugger
nbaksalyar.github.io

String interners in Rust
dev.to

Target Feature vs Target CPU for Rust
www.nickwilcox.com

Rust and it's Orphan Rules
blog.mgattozzi.dev

Async Interview #8: Stjepan Glavina
smallcultfollowing.com

Using RabbitMQ in Rust
www.zupzup.org

Creating a custom target
rust-embedded.github.io

Statically Sized Higher-kinded Polymorphism
blog.ielliott.io

Getting in and out of trouble with Rust futures
fasterthanli.me

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

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

This Month in Rust OSDev (June 2020)
rust-osdev.com

Cross-compiling Rust from ARM to x86-64
burgers.io

Writing Rust NIFs for Elixir With Rustler
simplabs.com

Geometric Constraint Solvers Part 1: Algebraic Expressions
adventures.michaelfbryan.com

A View of Async Memory Access in Rust
blog.haoxp.xyz

Building Canrun: A Statically Typed Logic Programming Library for Rust (Part 1)
esimmler.com

Hunting down a non-determinism-bug in our Rust Wasm build
dev.to

Implementing the Clipper Chip Cipher in Rust
blog.yossarian.net

Linux Developers May Discuss Allowing Rust Code Within the Kernel
www.phoronix.com

Machine Learning in Rust and WebAssembly
www.secondstate.io

Moving from TypeScript to Rust/WebAssembly
nicolodavis.com

RSoC: Improving Drivers and Kernel - Part 1 (Largely io_uring)
www.redox-os.org

Rust and WebAssembly from Scratch: Hello World with Strings
depth-first.com

Rust for JavaScript Developers - Pattern Matching and Enums
www.sheshbabu.com

Rust is Surprisingly Good as a Server Language
stu2b50.dev

Some Learnings from Implementing a Normalizing Rust Representer
dev.to

Subclassing GTK Widgets in Rust
www.figuiere.net

[spanish] Rust es orientado a objeto?
emanuelpeg.blogspot.com

[audio] Fuzzing Rust with Shnatsel Podcast
medium.com/@social_62682

[video] Rust Loops Part 1: loop, break, continue
www.youtube.com

[video] Hitting A Bug in the Rust Compiler - While Writing A Boring Link Checker
www.youtube.com

[video] Two Sum Problem - Leet Code + Rust
www.youtube.com

[video] Rust + WebAssembly - EdgeXR @ Netlight
www.youtube.com

[video] Rust Meetup - Adding WASM Support to a Native Application (GameDev Edition)
www.youtube.com
Crate of the week: nnnoiseless

This week's crate is nnnoiseless, a filter for audio noise removal ported from C.
Updates from core

do not try fetching the ancestors of errored trait impls
rust-lang/rust/pull/74516

only skip impls of foreign unstable traits
rust-lang/rust/pull/74534

don't assign () to ! MIR locals
rust-lang/rust/pull/74411

some Symbol related improvements
rust-lang/rust/pull/74357

use ArrayVec in SparseBitSet
rust-lang/rust/pull/74310

change SymbolName::name to a &str
rust-lang/rust/pull/74214

enforce the static symbol order
rust-lang/rust/pull/74203

reduce the amount of interning and layout_of calls in const eval
rust-lang/rust/pull/74202

add Arguments::as_str()
rust-lang/rust/pull/74056

impl Index<RangeFrom> for CStr
rust-lang/rust/pull/74021

add (unchecked) indexing methods to raw (and NonNull) slices
rust-lang/rust/pull/73986

make some Option methods const
rust-lang/rust/pull/73930

use step_unchecked more liberally in range iter impls
rust-lang/rust/pull/73490

add core::task::ready! macro
rust-lang/rust/pull/70817

backtrace: use noop backends on Miri
rust-lang/backtrace-rs/pull/360

stdarch: update and revamp wasm32 SIMD intrinsics
rust-lang/stdarch/pull/874

stdarch: implement AVX512f floating point comparisons
rust-lang/stdarch/pull/869

stdarch: constify all x86 rustc_args_required_const intrinsics
rust-lang/stdarch/pull/876

make unreachable_unchecked a const fn
rust-lang/rust/pull/74459

cargo: fix freshness checks for build noscripts on renamed dirs
rust-lang/cargo/pull/8497

crates.io: generate API tokens with a secure RNG, store hashed
rust-lang/crates.io/pull/2637

add Ayu theme to rustdoc
rust-lang/rust/pull/71237

clippy: unnecessary_sort_by: avoid linting if key borrows
rust-lang/rust-clippy/pull/5756
News

crates.io security advisory
blog.rust-lang.org

Announcing Rust 1.45.0
blog.rust-lang.org

Traits working group 2020 sprint 3 summary
blog.rust-lang.org

Best Programming Languages to Learn in 2020(Rust Lang)
frogtok.com

Learn how to make a Sokoban game in Rust!
sokoban.iolivia.me

Clear explanation of Rust’s module system
www.sheshbabu.com

Checking status of Rust features
notes.iveselov.info

Programming Servo: just hanging around
medium.com/programming-servo

Efficient representation of Ultimate Tic Tac Toe using Rust
www.minimax.dev

Next Algorithm: Backtracking into the n Queens Problem
rust.graystorm.com

RSoC: improving drivers and kernel - part 3 (largely io_uring)
redox-os.org

Writing an asynchronous MQTT Broker in Rust - Part 2
hassamuddin.com

Rust Closures: Returning impl Fn for move closures
notes.iveselov.info

Writing a kernel driver with Rust
not-matthias.github.io

Rewriting FORTRAN Software In Rust
mckeogh.tech

Building and debugging a high-throughput daemon in Rust
brokenco.de

Why even unused data needs to be valid
www.ralfj.de

Three Architectures for a Responsive IDE
rust-analyzer.github.io

Packaging & Vending Production Rust Software - Windows
ebbflow.io

Async Rust, but less intimidating
dev.to

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

Benchmarking gRPC in Rust & Go
medium.com/@Rustling_gopher

Efficient Parsing of JSON Record Sets in Rust
dev.to

Function Overloading in Rust
medium.com/swlh

Geometric Constraint Solvers Part 1: Algebraic Expressions
adventures.michaelfbryan.com

Haskell::From(Rust) I: Infix Notation and Currying
seanchen1991.github.io

How to Write a Queue in Rust
dev.to

Implementing a Workflow Graph
www.eltonpinto.me

Implementing flat_map in Rust
www.eltonpinto.me

IntelliJ Rust 0.3: New Macro Expansion Engine
blog.jetbrains.com

Low Level Stuff pt. 1 - Booting to 'Hello Rust!'
micouy.github.io

My Bet on Rust has been Vindicated
nbsoftsolutions.com

The Next Steps for Single Ownership and RAII
vale.dev

Popol: Minimal Non-Blocking I/O with Rust
cloudhead.io

Rust vs Go in Backend Web Development
qvault.io

Shipping Const Generics in 2020
without.boats

Two Beautiful Rust Programs
matklad.github.io

[Japanese] TCPが遅すぎる?QUICを使おう!
medium.com/nttlabs

[Spanish] Rust para embebidos
dev.to

[Portuguese] Aprendendo Rust: 03 - Variáveis
dev.to

[Portuguese] [video] Curso Rust 🦀 - Aula 4 - strings, match, sorteio, quizz
www.twitch.tv

[video] Boiled Down Crate 🦀: OnceCell
www.youtube.com

[video] Rust: What is Ownership and Borrowing
www.youtube.com
Crate of the week: pre

This week's crate is pre, a library for declaring and checking the assurance of precondition, useful for unsafe functions.
Hi!
We have plans to revive this channel.
Be tuned!
Updates from core

stabilize min_const_generics (Huzzah!)
rust-lang/rust/pull/79135

utilize PGO for rustc linux dist builds
rust-lang/rust/pull/80262

suggest fn ptr rather than fn item and suggest to use Fn trait bounds rather than the unique closure type
rust-lang/rust/pull/80284

implement a compiler diagnostic for move async mistake
rust-lang/rust/pull/80160

highlight edition-specific keywords correctly in code blocks, accounting for code block edition modifiers
rust-lang/rust/pull/80226

prevent caching normalization results with a cycle
rust-lang/rust/pull/80246

fix ICE when lookup method in trait for type that have bound vars
rust-lang/rust/pull/80170

remove DefPath from Visibility and calculate it on demand
rust-lang/rust/pull/80099

`rustc_query_system : reduce dependency graph memory usage
rust-lang/rust/pull/79589

add impl Div<NonZeroU*> for u* which cannot panic
rust-lang/rust/pull/79134

deprecate atomic compare_and_swap method
rust-lang/rust/pull/79261

stabilize core::slice::fill
rust-lang/rust/pull/79213

stabilize deque_range
rust-lang/rust/pull/79022

use clone_from from hashbrown::{HashMap, HashSet}
rust-lang/rust/pull/80400

futures: perf: pack the state and future of unfolds in the same memory
rust-lang/futures-rs/pull/2283

cargo: stabilize RUSTC_WORKSPACE_WRAPPER
rust-lang/cargo/pull/8976

rustdoc: stabilise --default-theme command line option
rust-lang/rust/pull/79642
Updates from Rust Community

Official
[Inside] Please welcome cjgillot and Nadrieril to compiler-contributors
blog.rust-lang.org

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

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

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

Redox OS 0.6.0
www.redox-os.org

Observations/Thoughts
Call Site Dependency Injection
matklad.github.io

A look at tokio 1.0 API Changes
leshow.github.io

Memory-Safety Challenge Considered Solved? An In-Depth Study with All Rust CVEs
arxiv.org

45,000+ lines of Rust code later: An update on the Record & Debug Tool (rd)
sidkshatriya/me/blob/master/003-Rd-makes-significant-advances.md

Cloning A Reference and Method Call Syntax in Rust
www.fpcomplete.com

Executable PNGs
djharper.dev

Why mongodump is fast
windsoilder.github.io

Rust Walkthroughs
Concurrency in modern programming languages: Rust
dev.to

Building distributed GraphQL backend using Rust and Apollo Federation
dev.to

Enhance code quality using matches macro! in Rust
blog.knoldus.com

ClickOnce for Rust Apps
https://taggartsoftware.medium.com/clickonce-for-rust-apps-f96873feb8f1

Closures in Rust
zhauniarovich.com

Don't let failures spread over your suite with process-based tests isolation
blog.cyplo.dev

Triangle From Scratch
rust-tutorials.github.io

[video] [series] (Live Coding) Advent of Code 2020 in Rust
youtube.com

Miscellaneous
Redox OS 0.6 Released With Many Fixes, Rewritten Kernel Memory Manager
www.phoronix.com

The more things change...
smallcultfollowing.com

Min const generics stabilization has been merged into master! It will reach stable on March 25, 2021 as part of Rust 1.51
www.reddit.com
Crate of the week: autograd

This week's crate is autograd, a library of differentiable operations and tensors for machine learning applications.
Updates from core

add edition 2021
rust-lang/rust/pull/79576

sync rustc_codegen_cranelift
rust-lang/rust/pull/80408

diag: print enum variant instead of enum type
rust-lang/rust/pull/80613

suggest renaming or escaping when fixing non-snake-case identifiers which would conflict with keywords
rust-lang/rust/pull/80592

support pattern as const parents in type_of
rust-lang/rust/pull/80551

parse const generics defaults
rust-lang/rust/pull/80547

miri: make size/align_of_val work for dangling raw ptrs
rust-lang/rust/pull/80491

slightly more typed interface to panic implementation
rust-lang/rust/pull/80260

remove all doc_comment!{} hacks by using #[doc = expr] where needed
rust-lang/rust/pull/79150

make copy(_nonoverlapping) const
rust-lang/rust/pull/79684

add Iterator::intersperse
rust-lang/rust/pull/79479

add fallible Box, Arc, and Rc allocator APIs
rust-lang/rust/pull/80310

do not create dangling &T in Weak<T>::drop
rust-lang/rust/pull/80488

de-stabilize unsized raw ptr methods for Weak
rust-lang/rust/pull/80422
Updates from Rust Community

Official
Announcing Rust 1.49.0
blog.rust-lang.org

mdBook security advisory
blog.rust-lang.org

Newsletters
RiB Newsletter #19 - Rust and smart contracts
www.reddit.com

Project/Tooling Updates
Rust Analyzer Changelog #58
rust-analyzer.github.io

Rust Search Extension Changelog v1.1
rust.extension.sh

Rust Design Patterns now also as a book
www.reddit.com

Pijul - How to survive?
pijul.org

RustFFT 5.0 has been released!
users.rust-lang.org

napi 1.0 released
napi.rs

Insta got a new website with docs and a Visual Studio Code Extension
insta.rs/

Isahc 1.0 and Retrospective
stephencoakley.com

slotmap 1.0 has been released! Copy restriction removed, no_std support, and more
www.reddit.com

libbpf-rs: eBPF for the Rust ecosystem
dxuuu.xyz

Observations/Thoughts
Reflecting on developing a database (2020 edition)
alex-dukhno.github.io

bore(1) + nonymous: lessons learned writing a DNS query tool and #![no_std] DNS library
www.azabani.com

Exploring RustFFT's SIMD Architecture
users.rust-lang.org

Understanding Yew Part 1
dev.to

Transposing options/results with iterators
dev.to

Dark side of POSIX APIs
vorner.github.io

Redesigning coca's Storage Abstraction
https://gist.github.com/teryror/7b9a23fd0cd8dcfbcb6ebd34ee2639f8

Generic associated types encode higher-order functions on types
willcrichton.net

Rust's SemVer Snares: Sizedness and Size
jack.wrenn.fyi

Why using WebAssembly and Rust together improves Node.js performance
developer.ibm.com

Rust Walkthroughs
Building a runtime reflection system for Rust 🦀️ (Part 3)
www.osohq.com

Writing a Kubernetes CRD Controller in Rust
technosophos.com

Adding FFI Support in x7
dpbriggs.ca

Recursive Iterators in Rust
fasterthanli.me

Writing a Prometheus MPD Exporter
beyermatthias.de

Rust Programming Language Tutorial - How to Build a To-Do List App
www.freecodecamp.org

Diving into Rust with a CLI
dev.to

Creating a GUI for a Rust application
dev.to

Zero to Production #6.5: An Introduction To Property-Based Testing In Rust
www.lpalmieri.com

Holiday Hacking - Tracking my heart rate while playing Call of Duty
jcdav.is

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

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

Extracting Files From an Archive Format I Understand Way Too Much
jam1.re

[series] eBPF Networking in Rust
dev.to

[video] FLTK Rust: use FLUID (RAD tool) with Rust
youtu.be

Miscellaneous
Rust 1.49.0 Released With 64-bit ARM Linux Support Rated Tier-1
www.phoronix.com

Rust will drop official support for Windows XP
www.reddit.com

Rust is the second most used language for Advent of Code, after Python
www.reddit.com

Rust grew 94% on O'Reilly online learning this year
www.reddit.com

Rust is now overall faster than C in benchmarks
www.reddit.com
Crate of the week: nom-supreme

This week's crate is nom-supreme, a crate of utilities for nom parsers, especially for great parse error handling.
Updates from core

use correct span for structured suggestion
rust-lang/rust/pull/80801

rustc_parse: better spans for synthesized token streams
rust-lang/rust/pull/80784

ast: remove some indirection layers from values in key-value attributes
rust-lang/rust/pull/80441

resolve: scope visiting doesn't need an Ident
rust-lang/rust/pull/80782

resolve/expand: improve attribute expansion on macro definitions and calls
rust-lang/rust/pull/80563

optimize DST field access
rust-lang/rust/pull/80200

allow references to interior mutable data behind a feature gate
rust-lang/rust/pull/80418

fixed const_generics error help
rust-lang/rust/pull/80714

use an empty TokenCursorFrame stack when capturing tokens
rust-lang/rust/pull/80830

deduplicate solution enum in chalk-recursive
rust-lang/chalk/pull/674

optimize away some fs::metadata calls
rust-lang/rust/pull/80756

optimize away some path lookups in the generic fs::copy implementation
rust-lang/rust/pull/80755

implement From<char> for u64 and u128
rust-lang/rust/pull/79502

stabilize slice::strip_prefix and slice::strip_suffix
rust-lang/rust/pull/77853

add [T; N]::each_ref and [T; N]::each_mut
rust-lang/rust/pull/75490

futures: perf: avoid an Option in the Map* futures
rust-lang/futures-rs/pull/2306

backtrace: use the symbol table if the DWARF only has line numbers
rust-lang/backtrace-rs/pull/401

cargo: stabilize -Zfeatures and -Zpackage-features
rust-lang/cargo/pull/8997

rustdoc: fix macros 2.0 and built-in derives being shown at the wrong path
rust-lang/rust/pull/77862

docs.rs: fix N+1 queries when fetching crate details
rust-lang/docs.rs/pull/1239

docs.rs: fix performance regression in all releases-views
rust-lang/docs.rs/pull/1237

clippy: new lint: vec_init_then_push
rust-lang/rust-clippy/pull/6538
Updates from Rust Community

Newsletters
This Month in Rust GameDev #17 - December 2020
rust-gamedev.github.io

This Month in Rust OSDev (December 2020)
rust-osdev.com

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

Knurling-rs Changelog #12
ferrous-systems.com

GCC Rust – How it can be achieved
www.embecosm.com

Open Source Security, Inc. Announces Funding of GCC Front-End for Rust
opensrcsec.com

Progress report on rustc_codegen_cranelift (Dec 2020)
bjorn3.github.io

Observations/Thoughts
XML parsing in Rust
simplabs.com

parsing baseball files in Rust instead of Python for an 8x speedup!
gregstoll.wordpress.com

Philosophies of Rust and Haskell
www.fpcomplete.com

Maybe you don't need Rust and WASM to speed up your JS
mrale.ph

Simplifying Endian-Specific file parsers in Rust with Omnom and type inference
www.parsed.uk

Rust's SemVer Snares: repr(transparent) Super-Cut
jack.wrenn.fyi

Exploiting Mixed Binaries
www.cs.ucy.ac.cy

[audio] The Virtual World: Embedded Rust part 2 - James Munns
anchor.fm

Rust Walkthroughs
Setting a Rust Executable's Icon in Windows
www.anthropicstudios.com

The Little Book of Rust Books
lborb.github.io

Rust Design Patterns
rust-unofficial.github.io

Hecto: Build your own text editor in Rust
www.philippflenker.com

CLI Shell Completions in Rust
dev.to

Dynamically Aligned Types?
dev.to

Polishing Rust - Temporary Value Dropped While Borrowed
https://mrtact.medium.com/polishing-rust-42d9131d1c3

Testing Hardware Using Rust Firmware and Rust Based CLI
www.jaredwolff.com

Exposing a Rust Library to Other Languages
sixtyfps.io

Replacing FastAPI with Rust: Part 3 - Trying Actix
dev.to

[video] Learning Rust by following the "Too Many Linked Lists" tutorial (Episode 1)
youtu.be

[video] Rust Parser and State Machine
youtu.be

Miscellaneous
Rust Language Cheat Sheet
cheats.rs/

Another Rust-y OS: Theseus joins Redox in pursuit of safer, more resilient systems
www.theregister.com

[video] OSDI '20 - Redleaf: Isolation and Communication in a Safe Operating System
youtu.be

[video] Read a paper: Theseus--An OS written in Rust
youtu.be
Crate of the week: fast-float

This week's crate is fast-float, a crate providing methods to parse floats really fast.