This week in Rust #380 — 03 mar 2021
https://this-week-in-rust.org/blog/2021/03/03/this-week-in-rust-380/
https://this-week-in-rust.org/blog/2021/03/03/this-week-in-rust-380/
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
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
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.
This week's crate is camino, a library with UTF-8 coded paths mimicking std::os::Path's API.
This week in Rust #381 — 10 mar 2021
https://this-week-in-rust.org/blog/2021/03/10/this-week-in-rust-381/
https://this-week-in-rust.org/blog/2021/03/10/this-week-in-rust-381/
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
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
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.
This week's crate is Sorceress, a Rust environment for sound synthesis and algorithmic composition.
This week in Rust #382 — 17 mar 2021
https://this-week-in-rust.org/blog/2021/03/17/this-week-in-rust-382/
https://this-week-in-rust.org/blog/2021/03/17/this-week-in-rust-382/
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
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
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
This week in Rust #383 — 24 mar 2021
https://this-week-in-rust.org/blog/2021/03/24/this-week-in-rust-383/
https://this-week-in-rust.org/blog/2021/03/24/this-week-in-rust-383/
Updates from core
enable mutable noalias for LLVM >= 12 (Fingers crossed)
rust-lang/rust/pull/82834
allow registering tool lints with register_tool
rust-lang/rust/pull/83216
more precise spans for HIR paths
rust-lang/rust/pull/83092
const_evaluatable_checked: stop eagerly erroring in is_const_evaluatable
rust-lang/rust/pull/82707
miri: improve error message of calling unsupported non-"C"/"system"-ABI foreign function
rust-lang/miri/pull/1745
make source-based code coverage compatible with MIR inlining
rust-lang/rust/pull/83080
stabilize or_patterns (RFC 2535, 2530, 2175)
rust-lang/rust/pull/79278
stabilize feature(osstring_ascii)
rust-lang/rust/pull/80193
stabilize slice::IterMut::as_slice
rust-lang/rust/pull/82771
stabilize assoc_char_funcs and assoc_char_consts
rust-lang/rust/pull/82919
implement String::remove_matches
rust-lang/rust/pull/71780
add a check for ASCII characters in to_upper and to_lower
rust-lang/rust/pull/81358
fix invalid slice access in String::retain
rust-lang/rust/pull/82554
constify copy related functions
rust-lang/rust/pull/83091
add as_str method for split whitespace str iterators
rust-lang/rust/pull/82570
Vec::dedup_by optimization
rust-lang/rust/pull/82191
fix overflowing length in Vec<ZST> to VecDeque
rust-lang/rust/pull/83244
implement TrustedLen and TrustedRandomAccess for Range<integer>, array::IntoIter, VecDequeue's iterators
rust-lang/rust/pull/81607
cargo: allow cargo update to operate with the --offline flag
rust-lang/cargo/pull/9279
cargo: refactor feature handling, and improve error messages
rust-lang/cargo/pull/9290
rustdoc: reduce GC work during search
rust-lang/rust/pull/83077
rustfmt: fix issue 'double spaces between struct field prefix and identity when using long attributes
rust-lang/rustfmt/pull/4747
enable mutable noalias for LLVM >= 12 (Fingers crossed)
rust-lang/rust/pull/82834
allow registering tool lints with register_tool
rust-lang/rust/pull/83216
more precise spans for HIR paths
rust-lang/rust/pull/83092
const_evaluatable_checked: stop eagerly erroring in is_const_evaluatable
rust-lang/rust/pull/82707
miri: improve error message of calling unsupported non-"C"/"system"-ABI foreign function
rust-lang/miri/pull/1745
make source-based code coverage compatible with MIR inlining
rust-lang/rust/pull/83080
stabilize or_patterns (RFC 2535, 2530, 2175)
rust-lang/rust/pull/79278
stabilize feature(osstring_ascii)
rust-lang/rust/pull/80193
stabilize slice::IterMut::as_slice
rust-lang/rust/pull/82771
stabilize assoc_char_funcs and assoc_char_consts
rust-lang/rust/pull/82919
implement String::remove_matches
rust-lang/rust/pull/71780
add a check for ASCII characters in to_upper and to_lower
rust-lang/rust/pull/81358
fix invalid slice access in String::retain
rust-lang/rust/pull/82554
constify copy related functions
rust-lang/rust/pull/83091
add as_str method for split whitespace str iterators
rust-lang/rust/pull/82570
Vec::dedup_by optimization
rust-lang/rust/pull/82191
fix overflowing length in Vec<ZST> to VecDeque
rust-lang/rust/pull/83244
implement TrustedLen and TrustedRandomAccess for Range<integer>, array::IntoIter, VecDequeue's iterators
rust-lang/rust/pull/81607
cargo: allow cargo update to operate with the --offline flag
rust-lang/cargo/pull/9279
cargo: refactor feature handling, and improve error messages
rust-lang/cargo/pull/9290
rustdoc: reduce GC work during search
rust-lang/rust/pull/83077
rustfmt: fix issue 'double spaces between struct field prefix and identity when using long attributes
rust-lang/rustfmt/pull/4747
Updates from Rust Community
Official
Building a shared vision for Async Rust
blog.rust-lang.org
[Inside] 1.51.0 pre-release testing
blog.rust-lang.org
[Foundation] Introducing Bobby Holley
foundation.rust-lang.org
[Foundation] Introducing Tyler Mandry
foundation.rust-lang.org
Project/Tooling Updates
rust-analyzer Changelog #69
rust-analyzer.github.io
Observations/Thoughts
The biggest threat to Rust's sustainability
kerkour.com
Safe Systems Programming in Rust
cacm.acm.org
The GPIO war: macro bunkers for typestate explosions
www.ecorax.net
A look back at asynchronous Rust
https://tomaka.medium.com/a-look-back-at-asynchronous-rust-d54d63934a1c
Rust as an App Language
www.ikiapps.com
How often does Rust change?
steveklabnik.com
Serving a single file over HTTP with Rust and Go
vadosware.io
The Case for the Typestate Pattern - The Typestate Pattern itself
www.novatec-gmbh.de
[ZH] Rust in Embedded World
zhuanlan.zhihu.com
[video] Cheaply writing a fast interpreter - Neil Mitchell
youtu.be
Rust Walkthroughs
Introduction to Apache Arrow with Rust
bit.ly
How to execute shellcodes from memory in Rust
kerkour.com
Beginner's Guide to Rust Pattern Matching
https://doma-dev.medium.com/pattern-matching-in-rust-and-other-imperative-languages-7cf1c6abf4a1
Writing a PostgreSQL Pretty Printer in Rust: Part 1.5
blog.urth.org
Calling .NET APIs from Rust
ericsink.com
The magical applications of Zero-Sized Types in Rust
www.hardmo.de
Rust and Rocket - Zero to Deploy
dev.to
Learning to Fly: Let's simulate evolution in Rust! (pt 3)
pwy.io
Building an OpenStreetMap app in Rust, Part VI
blogg.bekk.no
Tutorial: Writing a tiny Entity Component System in Rust
ianjk.com
Implementing RAII guards in Rust
aloso.github.io
[JP] [TECH] Actix web で HttpOnly な Cookie を設定する 🍪
dev.to
[video] The four-part "Overview of the Rust Programming Language" for beginners is now complete
www.youtube.com
Miscellaneous
Streaming using Bastion & Kafka - near consumer native correlation
vertexclique.com
Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust
benhoyt.com
Linus Torvalds on where Rust will fit into Linux
www.zdnet.com
Rust: integrating LLVM source-base code coverage with GitLab
www.collabora.com
Official
Building a shared vision for Async Rust
blog.rust-lang.org
[Inside] 1.51.0 pre-release testing
blog.rust-lang.org
[Foundation] Introducing Bobby Holley
foundation.rust-lang.org
[Foundation] Introducing Tyler Mandry
foundation.rust-lang.org
Project/Tooling Updates
rust-analyzer Changelog #69
rust-analyzer.github.io
Observations/Thoughts
The biggest threat to Rust's sustainability
kerkour.com
Safe Systems Programming in Rust
cacm.acm.org
The GPIO war: macro bunkers for typestate explosions
www.ecorax.net
A look back at asynchronous Rust
https://tomaka.medium.com/a-look-back-at-asynchronous-rust-d54d63934a1c
Rust as an App Language
www.ikiapps.com
How often does Rust change?
steveklabnik.com
Serving a single file over HTTP with Rust and Go
vadosware.io
The Case for the Typestate Pattern - The Typestate Pattern itself
www.novatec-gmbh.de
[ZH] Rust in Embedded World
zhuanlan.zhihu.com
[video] Cheaply writing a fast interpreter - Neil Mitchell
youtu.be
Rust Walkthroughs
Introduction to Apache Arrow with Rust
bit.ly
How to execute shellcodes from memory in Rust
kerkour.com
Beginner's Guide to Rust Pattern Matching
https://doma-dev.medium.com/pattern-matching-in-rust-and-other-imperative-languages-7cf1c6abf4a1
Writing a PostgreSQL Pretty Printer in Rust: Part 1.5
blog.urth.org
Calling .NET APIs from Rust
ericsink.com
The magical applications of Zero-Sized Types in Rust
www.hardmo.de
Rust and Rocket - Zero to Deploy
dev.to
Learning to Fly: Let's simulate evolution in Rust! (pt 3)
pwy.io
Building an OpenStreetMap app in Rust, Part VI
blogg.bekk.no
Tutorial: Writing a tiny Entity Component System in Rust
ianjk.com
Implementing RAII guards in Rust
aloso.github.io
[JP] [TECH] Actix web で HttpOnly な Cookie を設定する 🍪
dev.to
[video] The four-part "Overview of the Rust Programming Language" for beginners is now complete
www.youtube.com
Miscellaneous
Streaming using Bastion & Kafka - near consumer native correlation
vertexclique.com
Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust
benhoyt.com
Linus Torvalds on where Rust will fit into Linux
www.zdnet.com
Rust: integrating LLVM source-base code coverage with GitLab
www.collabora.com
Crate of the week: egg
This week's crate is egg, a project using e-graphs to provide a new way to build program optimizers and synthesizers.
This week's crate is egg, a project using e-graphs to provide a new way to build program optimizers and synthesizers.
This week in Rust #384 — 31 mar 2021
https://this-week-in-rust.org/blog/2021/03/31/this-week-in-rust-384/
https://this-week-in-rust.org/blog/2021/03/31/this-week-in-rust-384/
Updates from core
coverage bug fixes and optimization support
rust-lang/rust/pull/83307
ban custom inner attributes in expressions and statements
rust-lang/rust/pull/83488
GenericParam does not need to be a HIR owner
rust-lang/rust/pull/83424
remove assignments to ZST places instead of marking ZST return place as unused
rust-lang/rust/pull/83177
run analyses before thir-tree dumps
rust-lang/rust/pull/83050
import small cold functions
rust-lang/rust/pull/82980
implement feature(const_generics_defaults)
rust-lang/rust/pull/75384
stabilize debug_non_exhaustive
rust-lang/rust/pull/83041
simplify encoder and decoder
rust-lang/rust/pull/83273
remove (lots of) dead code
rust-lang/rust/pull/83185
use TrustedRandomAccess for in-place iterators where possible
rust-lang/rust/pull/79846
instruct LLVM that binary_search returns a valid index
rust-lang/rust/pull/81354
make NonNull::as_ref (and friends) return refs with unbound lifetimes
rust-lang/rust/pull/80771
add function core::iter::zip
rust-lang/rust/pull/82917
revert reverting of stabilizing integer::BITS
rust-lang/rust/pull/82565
generalize and inline slice::fill specializations
rust-lang/rust/pull/83245
add Result::into_err where the Ok variant is the never type
rust-lang/rust/pull/83421
remove Option::{unwrap_none, expect_none}
rust-lang/rust/pull/83349
futures: add AsyncSeekExt::stream_position
rust-lang/futures-rs/pull/2380
cargo: default macOS targets to unpacked debuginfo
rust-lang/cargo/pull/9298
rustdoc: sidebar trait items order
rust-lang/rust/pull/83051
docs.rs: stop displaying and serving authorship information
rust-lang/docs.rs/pull/1322
coverage bug fixes and optimization support
rust-lang/rust/pull/83307
ban custom inner attributes in expressions and statements
rust-lang/rust/pull/83488
GenericParam does not need to be a HIR owner
rust-lang/rust/pull/83424
remove assignments to ZST places instead of marking ZST return place as unused
rust-lang/rust/pull/83177
run analyses before thir-tree dumps
rust-lang/rust/pull/83050
import small cold functions
rust-lang/rust/pull/82980
implement feature(const_generics_defaults)
rust-lang/rust/pull/75384
stabilize debug_non_exhaustive
rust-lang/rust/pull/83041
simplify encoder and decoder
rust-lang/rust/pull/83273
remove (lots of) dead code
rust-lang/rust/pull/83185
use TrustedRandomAccess for in-place iterators where possible
rust-lang/rust/pull/79846
instruct LLVM that binary_search returns a valid index
rust-lang/rust/pull/81354
make NonNull::as_ref (and friends) return refs with unbound lifetimes
rust-lang/rust/pull/80771
add function core::iter::zip
rust-lang/rust/pull/82917
revert reverting of stabilizing integer::BITS
rust-lang/rust/pull/82565
generalize and inline slice::fill specializations
rust-lang/rust/pull/83245
add Result::into_err where the Ok variant is the never type
rust-lang/rust/pull/83421
remove Option::{unwrap_none, expect_none}
rust-lang/rust/pull/83349
futures: add AsyncSeekExt::stream_position
rust-lang/futures-rs/pull/2380
cargo: default macOS targets to unpacked debuginfo
rust-lang/cargo/pull/9298
rustdoc: sidebar trait items order
rust-lang/rust/pull/83051
docs.rs: stop displaying and serving authorship information
rust-lang/docs.rs/pull/1322
Updates from Rust Community
Official
Announcing Rust 1.51.0
blog.rust-lang.org
[Foundation] Introducing Mark Rousskov
foundation.rust-lang.org
[Foundation] Introducing Nell Shamrell-Harrington
foundation.rust-lang.org
Project/Tooling Updates
rust-analyzer changelog #70
rust-analyzer.github.io
IntelliJ Rust Changelog #144
intellij-rust.github.io
Knurling-rs Financial Update and Call for Funding
ferrous-systems.com
Ockam | End-to-end encrypted messaging and mutual authentication between distributed applications
ockam-network/ockam
Announcing the Deno Company
deno.com
Observations/Thoughts
Using Rust to corrode insane Python run-times
www.vortexa.com
The current state of Rust web frameworks
blog.logrocket.com
GhostCell: Separating Permissions from Data in Rust
plv.mpi-sws.org
Using const generics in slipstream
vorner.github.io
Rust iterators tips and tricks
robinmoussu.gitlab.io
Rust Walkthroughs
Pin and suffering
fasterthanli.me
Embedding Rust Into Zephyr Firmware using C-bindgen
www.jaredwolff.com
Parser combinators in Rust
doma.dev
Grids in Rust, part 2: const generics
blog.adamchalmers.com
Ergonomic error handling with Rust
dev.to
Implementing SHA2 (256/512) algorithm with Rust const generics
dev.to
Analisando alocações de memória em Rust utilizando GNU Debugger
dev.to
Testing an embedded application
ferrous-systems.com
Using Const Generics To Model An Electronics Graph
mkhan45.github.io
Rust's Module System Explained
aloso.github.io
[series] Working with the trust-dns-resolver crate
dev.to
[video] Safer Rust: Program Verification with Creusot
youtu.be
Miscellaneous
Linus Torvalds weighs in on Rust language in the Linux kernel
arstechnica.com
Ownership Concept Diagram
www.reddit.com
Official
Announcing Rust 1.51.0
blog.rust-lang.org
[Foundation] Introducing Mark Rousskov
foundation.rust-lang.org
[Foundation] Introducing Nell Shamrell-Harrington
foundation.rust-lang.org
Project/Tooling Updates
rust-analyzer changelog #70
rust-analyzer.github.io
IntelliJ Rust Changelog #144
intellij-rust.github.io
Knurling-rs Financial Update and Call for Funding
ferrous-systems.com
Ockam | End-to-end encrypted messaging and mutual authentication between distributed applications
ockam-network/ockam
Announcing the Deno Company
deno.com
Observations/Thoughts
Using Rust to corrode insane Python run-times
www.vortexa.com
The current state of Rust web frameworks
blog.logrocket.com
GhostCell: Separating Permissions from Data in Rust
plv.mpi-sws.org
Using const generics in slipstream
vorner.github.io
Rust iterators tips and tricks
robinmoussu.gitlab.io
Rust Walkthroughs
Pin and suffering
fasterthanli.me
Embedding Rust Into Zephyr Firmware using C-bindgen
www.jaredwolff.com
Parser combinators in Rust
doma.dev
Grids in Rust, part 2: const generics
blog.adamchalmers.com
Ergonomic error handling with Rust
dev.to
Implementing SHA2 (256/512) algorithm with Rust const generics
dev.to
Analisando alocações de memória em Rust utilizando GNU Debugger
dev.to
Testing an embedded application
ferrous-systems.com
Using Const Generics To Model An Electronics Graph
mkhan45.github.io
Rust's Module System Explained
aloso.github.io
[series] Working with the trust-dns-resolver crate
dev.to
[video] Safer Rust: Program Verification with Creusot
youtu.be
Miscellaneous
Linus Torvalds weighs in on Rust language in the Linux kernel
arstechnica.com
Ownership Concept Diagram
www.reddit.com
Crate of the week: tide-acme
This week's crate is tide-acme, a crate for automatic HTTPS certificaion using Let's Encrypt for Tide.
This week's crate is tide-acme, a crate for automatic HTTPS certificaion using Let's Encrypt for Tide.