pub ThisWeekInRust {} – Telegram
pub ThisWeekInRust {}
994 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

fix type checking of return expressions outside of function bodies
rust-lang/rust/pull/86206

add future_prelude_collision lint
rust-lang/rust/pull/85707

do not emit alloca for ZST locals with multiple assignments
rust-lang/rust/pull/86166

fix panic-safety in specialized Zip::next_back
rust-lang/rust/pull/86452

add io::Cursor::{remaining, remaining_slice, is_empty}
rust-lang/rust/pull/86037

make fmt::Arguments::as_str unstably const
rust-lang/rust/pull/86655

cargo: unify weak and namespaced features
rust-lang/cargo/pull/9574

rustdoc: properly render higher-ranked trait bounds
rust-lang/rust/pull/84814

rustdoc: do not list impl when trait has doc(hidden)
rust-lang/rust/pull/86513

rustdoc: render <Self as X>::Y type casts properly across crate bounds
rust-lang/rust/pull/86449

rustdoc: staggered layout for module contents on mobile
rust-lang/rust/pull/85651

clippy: add suspicious group
rust-lang/rust-clippy/pull/7350
Updates from Rust Community

Official
[Foundation] Announcing our Executive Search
foundation.rust-lang.org

Project/Tooling Updates
ChainSafe's Polkadot Index Network Token update #2
medium.com/chainsafe-systems

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

Fang
www.badykov.com

This Week In Veloren 125
veloren.net

This Week In TensorBase 9
tensorbase.io

Observations/Thoughts
Hosting wasm modules in Rust easily using ‘wasmi’
blog.knoldus.com

[video] Why the future of the cloud will be built on Rust
www.youtube.com

Rust Walkthroughs
Deserializing Binary Data Files in Rust
adventures.michaelfbryan.com

Type-checked keypaths in Rust
www.cmyr.net

Polymorphism in Rust
oswalt.dev

Cross Compiling Rust Binaries With GitHub Actions
www.rohanjain.in

Rust #2: Lifetimes, Owners and Borrowers, OH MY!
dev.to

[series] Build an API in Rust (Part 3)
dev.to

[series] [video] Building a Web Application with Rust - Part V - HTTP Server with Database Manager
www.youtube.com

[series] [video] Building a Web Application with Rust - Part VI - CRUD API
www.youtube.com

[video] Beginner's Series to Rust
www.youtube.com

[video] Building a multithreaded Flutter + Rust App integrating both with Bloc/Cubit and Rid
www.youtube.com

[video] Implementing Hazard Pointers in Rust
www.youtube.com

[video] Rust Linz; June 2021 - Tim McNamara - How to learn Rust
www.youtube.com

Miscellaneous
Programming Rust, 2nd Edition is Available
www.oreilly.com

Rust in Action is Available
www.manning.com
Crate of the week: hypergraph

This week's crate is hypergraph, graph data structure implementation where edges can join arbitrary numbers of vertices.
Updates from core

make ForceWarn a lint level
rust-lang/rust/pull/86009

change vtable memory representation to use tcx allocated allocations
rust-lang/rust/pull/86475

support allocation failures when interpreting MIR
rust-lang/rust/pull/86255

avoid byte to char position conversions in is_multiline
rust-lang/rust/pull/86778

fix pretty print for loop
rust-lang/rust/pull/86358

pretty-print macro matchers instead of using source code
rust-lang/rust/pull/86282

fix ICE when main is declared in an extern block
rust-lang/rust/pull/86190

ignore inference variables in certain queries
rust-lang/rust/pull/86866

check the number of generic lifetime and const parameters of intrinsics
rust-lang/rust/pull/86148

check node kind to avoid ICE in check_expr_return()
rust-lang/rust/pull/86728

deny using default function in impl const Trait
rust-lang/rust/pull/86571

fix garbled suggestion for missing lifetime specifier
rust-lang/rust/pull/86678

fix misleading "impl Trait" error
rust-lang/rust/pull/86666

alloc: no_global_oom_handling: disable new()s, pin()s, etc.
rust-lang/rust/pull/86810

add linked list cursor end methods
rust-lang/rust/pull/86714

stabilize str::from_utf8_unchecked as const
rust-lang/rust/pull/86213

stabilize string_drain_as_str
rust-lang/rust/pull/86858

stabilize Bound::cloned()
rust-lang/rust/pull/86797

stabilize Seek::rewind()
rust-lang/rust/pull/86794

when using process::Command on Windows, environment variable names must be case-preserving but case-insensitive
rust-lang/rust/pull/85270

add track_path::path fn for usage in proc_macros
rust-lang/rust/pull/84029

libm: optimize round and roundf
rust-lang/libm/pull/253

cargo: adjust error message with offline and frozen
rust-lang/cargo/pull/9644

clippy: stabilize cargo clippy --fix
rust-lang/rust-clippy/pull/7405

clippy: downgrade nonstandard_macro_braces to nursery
rust-lang/rust-clippy/pull/7424

clippy: don't suggest doc(hidden) or unstable variants in wildcard lint
rust-lang/rust-clippy/pull/7407

clippy: fix emitting in nested (proc_)macros for nonstandard_macro_braces lint
rust-lang/rust-clippy/pull/7431

clippy: fix doc_markdown false positive
rust-lang/rust-clippy/pull/7426

clippy: new lint: rc_mutex
rust-lang/rust-clippy/pull/7316

clippy: new lint: strlen_on_c_strings
rust-lang/rust-clippy/pull/7243

clippy: new lint: disallowed_noscript_idents
rust-lang/rust-clippy/pull/7400
Updates from Rust Community

Official
[Inside] What the Error Handling Project Group is Working Towards
blog.rust-lang.org

Project/Tooling Updates
Linux Rust Support Patches
lore.kernel.org

Intellij Rust Changelog #150
intellij-rust.github.io

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

GCC Rust Monthly Report #7 June 2021
thephilbert.io

The future of Buck
developers.facebook.com

ChainSafe's Rust implementation of Mina spec Community Spotlight (video)
youtu.be

MoonZoon Dev News (5): Chat example, MoonZoon Cloud
dev.to

Fluvio: The Programmable Data Platform
www.infinyon.com

butido - a Linux Package Building Tool in Rust
beyermatthias.de

Knurling-rs changelog #28
ferrous-systems.com

fcp 0.2.0 released - A significantly faster alternative to cp
Svetlitski/fcp

Announcing Sycamore v0.5.0 - SSR + Routing
sycamore-rs.netlify.app

This Week In TensorBase 10
tensorbase.io

Observations/Thoughts
Walking through "The Java Tutorials" with Rust - 'What Is an Interface?' and specialization
rust-java-tutorials.netlify.app

Rust and Tinyverse
tinyverse.substack.com

Speeding Up the Webcola Graph Viz Library with Rust + WebAssembly
cprimozic.net

Rust closures: How a closure can implement more than one trait
diaries.vercel.app

Rust Walkthroughs
Rust on the front-end
blog.frankel.ch

Deploy a Rust Web App With Rocket
www.koyeb.com

A TCP Proxy in 30 lines of Rust
zmedley.com

Manage WebAssembly Apps in WasmEdge Using Docker Tools
www.secondstate.io

Rust Concept Clarification: Deref vs AsRef vs Borrow vs Cow
dev.to

Thread safety and Learning in Rust
dev.to

REST API Wrapper with Rust
dev.to

[video] Building a Web Application with Rust - Part VII - Auth Middleware
www.youtube.com

[video] Building a Web Application with Rust - Part VIII - Containerization
www.youtube.com

[video] Rust & Bevy Tutorial - Building a Game From Scratch (Part 1)
www.youtube.com

[video] Creating a Chat Server with async Rust and Tokio
www.youtube.com

[video] 1Password Developer Fireside Chat: Dive into Async & Futures in Rust
www.youtube.com
Crate of the week: css-inline

This week's crate is css-inline, a crate to inline CSS into style tags.
Updates from core

improve opaque pointers support
rust-lang/rust/pull/86873

recover from &dyn mut ... parse errors
rust-lang/rust/pull/86812

improve error reporting for modifications behind & references
rust-lang/rust/pull/86815

do not suggest adding a semicolon after ?
rust-lang/rust/pull/87061

use #[track_caller] in const panic diagnostics
rust-lang/rust/pull/87000

query-ify global limit attribute handling
rust-lang/rust/pull/86674

support forwarding caller location through trait object method call
rust-lang/rust/pull/81360

shrink the deprecated span
rust-lang/rust/pull/86320

report an error if resolution of closure call functions failed
rust-lang/rust/pull/86249

stabilize RangeFrom patterns in 1.55
rust-lang/rust/pull/83918

account for capture kind in auto traits migration
rust-lang/rust/pull/86869

stop generating allocas & memcmp for simple short array equality
rust-lang/rust/pull/85828

inline Iterator as IntoIterator
rust-lang/rust/pull/84560

optimize unchecked indexing into chunks and 'chunks_mut`
rust-lang/rust/pull/86823

add Integer::log variants
rust-lang/rust/pull/80918

special case for integer log10
rust-lang/rust/pull/869309

cargo: unify cargo and rustc's error reporting
rust-lang/cargo/pull/9655

rustdoc: fix rendering of reexported macros 2.0 and fix visibility of reexported items
rust-lang/rust/pull/86841
Updates from Rust Community

Newsletters
This Month in Rust GameDev #23 - June 2021
gamedev.rs

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

Project/Tooling Updates
Announcing Arti, a pure-Rust Tor implementation
blog.torproject.org

Programmatic stream filtering using WebAssembly
www.infinyon.com

Filecoin Rust implementation "Forest" project update
medium.com/chainsafe-systems

Mina Rust implementation update: Web 3.0 with Rust x Wasm
medium.com/chainsafe-systems

This Week In TensorBase 11
tensorbase.io

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

Observations/Thoughts
(Risp (in (Rust) (Lisp)))
stopachka.essay.dev

[series] Learning Rust #6: Understanding ownership in Rust
hamatti.org

[series] Why and how we wrote a compiler in Rust: Part 2
https://bnjjj.medium.com/why-and-how-we-wrote-a-compiler-in-rust-blog-post-series-2-x-the-stack-548dad1919d0

[audio] What's New in Rust 1.52 and 1.53
rustacean-station.org

Rust Walkthroughs
Inline In Rust
matklad.github.io

Using WebAssembly threads from C, C++ and Rust
web.dev

Host a wasm module on Raspberry Pi easily Part 1
blog.knoldus.com

Hello, Video Codec! - Demystify video codecs by writing one in ~100 lines of Rust
medium.com/tempus-ex

Learning Idiomatic Rust with FizzBuzz
www.fotonixx.com

Rust + Tauri + Svelte Tutorial
jbarszczewski.com

Rust Nibbles : Gazebo - An introduction to the Gazebo library
developers.facebook.com

A Rust controller for Kubernetes
blog.frankel.ch

First steps with Docker + Rust
dev.to

[series] Writing an RPG using rg3d - #1 - Character Controller
rg3d.rs

[series] Rust #4: Options and Results (Part 2)
dev.to

[series] Basic CRUD with rust using tide - refactoring
dev.to

[video] End-to-end Encrypted Messaging in Rust, with Ockam by Mrinal Wadhwa
www.youtube.com

[video] [series] Building a Web Application with Rust - Part IX - Deploying on Kubernetes
www.youtube.com

[video] [series] ULTIMATE Rust Lang Tutorial! - Smart Pointers Part 1
www.youtube.com

[video] [series] Implementing Hazard Pointers in Rust (part 2)
www.youtube.com

Miscellaneous
Introducing hyperfunctions: new SQL functions to simplify working with time-series data in PostgreSQL
blog.timescale.com
Crate of the week: endbasic

This week's crate is endbasic, an emulator friendly DOS / BASIC environment running on small hardware and the web.
Updates from core

handle non-integer const generic parameters in debuginfo type names
rust-lang/rust/pull/87082

warn about useless assignments of variables/fields to themselves
rust-lang/rust/pull/87129

suggest a path separator if a stray colon is found in a match arm
rust-lang/rust/pull/87101

add diagnostics for mistyped inclusive range
rust-lang/rust/pull/87071

various diagnostics clean ups/tweaks
rust-lang/rust/pull/87225

compute a better lint_node_id during expansion
rust-lang/rust/pull/87146

TAIT: infer all inference variables in opaque type substitutions via InferCx
rust-lang/rust/pull/87200

remove refs from Pat slices
rust-lang/rust/pull/87140

shrink the CrateStore dynamic interface
rust-lang/rust/pull/87117

loop over all opaque types instead of looking at just the first one with the same DefId
rust-lang/rust/pull/87107

cache expansion hash globally
rust-lang/rust/pull/87044

perf: noise and variance
rust-lang/rustc-perf/pull/902

some perf optimizations and logging
rust-lang/rust/pull/87203

update Rust Float-Parsing to use the Eisel-Lemire algorithm
rust-lang/rust/pull/86761

stabilize [T; N]::map(_)
rust-lang/rust/pull/87174

split `MaybeUninit::write' into new feature gate and stabilize it
rust-lang/rust/pull/86344

mark Option::insert as must_use
rust-lang/rust/pull/87196

added Arc::try_pin
rust-lang/rust/pull/85579

hashbrown: replace some custom unsafe code with array::map
rust-lang/hashbrown/pull/281

hashbrown: optimize find
rust-lang/hashbrown/pull/279

cargo: deduplicate compiler diagnostics
rust-lang/cargo/pull/9675

cargo: add d as an alias for doc
rust-lang/cargo/pull/9680

clippy: fix false positives and document branches_sharing_code lint
rust-lang/rust-clippy/pull/7462

clippy: new lint: self_named_constructor
rust-lang/rust-clippy/pull/7403

clippy: add Arc to redundant_allocation
rust-lang/rust-clippy/pull/7308

clippy: fix ICE in is_integer_const
rust-lang/rust-clippy/pull/7473
Updates from Rust Community

Official
Rust 2021 public testing period
blog.rust-lang.org

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

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

Announcing tokio-uring: io-uring support for Tokio
tokio.rs

Franzplot: a teaching software (re)written in Rust
gfx-rs.github.io

wgpu: release of v0.9 and the future
gfx-rs.github.io

Allsorts: Font Shaping Engine 0.6 Release
yeslogic.com

This Week In TensorBase 12
tensorbase.io

cargo-ui: Introducing cargo-ui, a GUI for cargo
sixtyfps.io

Quickwit: A highly cost-efficient search engine in Rust
quickwit.io

Observations/Thoughts
Compiling Rust is NP-hard
niedzejkob.p4.team

How we improved the performance of our Rust app
www.poor.dev

Making Rust Float Parsing Fast: libcore Edition
www.reddit.com

Adventures in Rust and Load Balancers
https://bparli.medium.com/adventures-in-rust-and-load-balancers-73a0bc61a192

Faster (and smaller) uploads in Discourse with Rust, WebAssembly and MozJPEG
blog.discourse.org

Rust Walkthroughs
How to implement worker pools in Rust
kerkour.com

Run rust wasm in electron app
domtac.github.io

Host a Wasm module easily on Raspberry Pi Part 2
blog.knoldus.com

Rust and the JVM
blog.frankel.ch

Smart Pointers in Rust: What, why and how?
dev.to

Lazy async operations in Rust
joshchoo.com

05 - Basic CRUD with rust using tide - front-end with tera
javierviola.com

Rust #5: Naming conventions
dev.to

Leader election in rust the journey towards implementing nun-db leader election
mateusfreira.github.io

Novel way to Develop, Test, and Document C libraries from Rust
wasmer.io

Rust + Tauri + Svelte Tutorial
jbarszczewski.com

Static Integer Types
tratt.net

Serializing data faster
devblog.arcana.rs

[series] Basic CRUD api with Rust and Tide
dev.to

I. Implementing ICMP in Rust
dev.to

II. Implementing ICMP in Rust
dev.to

[series] [video] Explaining rust-analyzer
youtube.com

Miscellaneous
A GPIO driver in Rust
lwn.net

Computer Scientist proves safety claims of the programming language Rust
www.eurekalert.org

JetBrains The State of Developer Ecosystem 2021: Rust
www.reddit.com
Crate of the week: dylint

This week's crate is dylint, a tool for running Rust lints from dynamic libraries.
Updates from core

recognize bounds on impls as const bounds
rust-lang/rust/pull/87273

warn on inert attributes used on bang macro invocation
rust-lang/rust/pull/87296

better diagnostics with mismatched types due to implicit static lifetime
rust-lang/rust/pull/87244

improve SortedMap::get_by_key_enumerated more
rust-lang/rust/pull/86429

VecMap::get_value_matching should return just one element
rust-lang/rust/pull/86410

don't create references to uninitialized data in List::from_arena
rust-lang/rust/pull/87268

miri: better errors for negative out-of-bounds offsets
rust-lang/miri/pull/1853

miri: better ptr-out-of-bounds errors
rust-lang/rust/pull/87224

MIR opt: separate constant predecessors of a switch
rust-lang/rust/pull/85646

stabilize into_parts() and into_error()
rust-lang/rust/pull/87175

stabilize impl From<[(K, V); N]> for HashMap (and friends)
rust-lang/rust/pull/84111

remove Option from BufWriter
rust-lang/rust/pull/87171

implement TrustedLen for Flatten/FlatMap if the U: IntoIterator == [T; N]
rust-lang/rust/pull/87168

add Stdin::lines, Stdin::split forwarder methods
rust-lang/rust/pull/86847

add support for custom allocator in VecDeque
rust-lang/rust/pull/86595

hashbrown: make rehashing and resizing less generic
rust-lang/hashbrown/pull/282

hashbrown: inline small functions
rust-lang/hashbrown/pull/283

clippy: add check if ty has_escaping_bound_vars in zero_sized_map_values lint
rust-lang/rust-clippy/pull/7470

clippy: improve conflicting rlibs error again
rust-lang/rust-clippy/pull/7495
Updates from Rust Community

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

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

CGlue Today And The Road Ahead
blaz.is

Black Hat Rust: July Update
kerkour.com

Updates from the Tinyverse - July 2021
tinyverse.substack.com

Gloo v0.3.0 release
gloo-rs.web.app

This Week In TensorBase 13
tensorbase.io

Observations/Thoughts
Towards Inserting One Billion Rows in SQLite Under A Minute
avi.im

Async and asleep: designing our future embedded applications
tweedegolf.nl

My Rust development workflow (after 2+ years full-time)
kerkour.com

Dealing with Out-of-memory Conditions in Rust
www.crowdstrike.com

Rust for Linux redux
lwn.net

My experience crafting an interpreter with Rust
ceronman.com

Rust: First Thoughts
dev.to

Mutable statics have scary superpowers! Do not use them
blog.kodewerx.org

9 advantages of programming in Rust
tim.mcnamara.nz

[audio] AreWePodcastYet - 07 Georg Semmler on Diesel!
soundcloud.com

Rust Walkthroughs
Awesome Unstable Rust Features
lazy.codes

How I Built a Cross-Platform Desktop Application with Svelte, Redis, and Rust
css-tricks.com

Understanding Rust futures by going way too deep
fasterthanli.me

Understanding Rust's 'serde' using macro expansion
owengage.com

Rust - Writing Parsers With nom Parser Combinator Framework
iximiuz.com

🥞 Rust Visualized: The Stack, the Heap, and Pointers
dev.to

First steps with Rust declarative macros!
dev.to

diceroller, a sample Rust project
blog.frankel.ch

Ditching try..catch and null checks with Rust
blog.logrocket.com

Implementing Merge Sort in Rust
dev.to

Emulating abstract base classes in Rust
dev.to

Rust #6: Exploring crates
dev.to

Rust and WebAssembly Serverless Functions in Vercel
thenewstack.io

Raw Pointers in Unsafe Rust are quite powerful
blog.knoldus.com

28 Days of Rust -- Part 1: Ownership and the Borrow Checker
medium.com/comsystoreply

The Rust dbg! macro
edgarluque.com

[video] Building a Web Application with Rust - Part X - VanillaJS FrontEnd
youtu.be

[video] Rust Bevy Tutorial - Enemy Formation & Attack (part 3/3)
youtu.be

[video] How to create an AWS Lambda in rust
www.youtube.com

Miscellaneous
This finally happened: rust made more sense
www.reddit.com

Edward Snowden endorses Rust for more secure computing
www.reddit.com

I bet I can do that in rust!!. Generic types are more powerful than most of us thought
www.reddit.com
Crate of the week: loadstone

This week's crate is loadstone, a bare-metal bootloader for embedded systems.
Updates from core

#[derive(Default)] on enums with a #[default] attribute (RFC #3107)
rust-lang/rust/pull/86735

fix issue with autofix for ambiguous associated function from Rust 2021 prelude when struct is generic
rust-lang/rust/pull/87557

add flag to configure large_assignments lint
rust-lang/rust/pull/86450

make const panic!("..") work in Rust 2021
rust-lang/rust/pull/86998

suggest removing unnecessary &mut as help message
rust-lang/rust/pull/87453

suggest ; on parse error where applicable
rust-lang/rust/pull/87436

fix invalid suggestions for non-ASCII characters in byte constants
rust-lang/rust/pull/87659

tweak opaque type mismatch error
rust-lang/rust/pull/87673

bail on any found recursion when expanding opaque types
rust-lang/rust/pull/87546

polonius: compute subset errors everywhere
rust-lang/polonius/pull/156

MIR borrowck does not generate lifetime variables for 'static lifetimes during opaque type resolution
rust-lang/rust/pull/87483

tweak borrowing suggestion in for loop
rust-lang/rust/pull/87559

remove unsound TrustedRandomAccess implementations
rust-lang/rust/pull/85874

BTree: lazily locate leaves in rangeless iterators
rust-lang/rust/pull/86031

partially stabilize const_slice_first_last
rust-lang/rust/pull/86593

stabilize core::task::ready!
rust-lang/rust/pull/81050

stabilize const_fn_transmute, const_fn_union
rust-lang/rust/pull/85769

implement fold() on array::IntoIter to improve flatten().collect() perf
rust-lang/rust/pull/87431

optimize fmt::PadAdapter::wrap
rust-lang/rust/pull/87052

remove P: Unpin bound on impl Future for Pin
rust-lang/rust/pull/81363

futures: use futuresordered in join_all
rust-lang/futures-rs/pull/2412

clippy: cover Result on map_flatten lint
rust-lang/rust-clippy/pull/7522

clippy: fix while_let_on_iterator
rust-lang/rust-clippy/pull/7520