pub ThisWeekInRust {} – Telegram
pub ThisWeekInRust {}
990 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
Do you want to read core updates here?
Anonymous Poll
78%
Yes
16%
Don't care
7%
No, hide it
Updates from core

Optimize copying large ranges of undefmask blocks
rust-lang/rust/pull/58556

Unregress using scalar unions in constants
rust-lang/rust/pull/59139

Ignore higher-ranked object bound conditions created by WF
rust-lang/rust/pull/59132

Visit impl Trait for dead_code lint
rust-lang/rust/pull/59129

rustc: Fix ICE when trait alias has bare Self
rust-lang/rust/pull/59118

Fix ICE in MIR pretty printing
rust-lang/rust/pull/59036

resolve: Account for new importable entities
rust-lang/rust/pull/59047

Remove restriction on isize/usize in repr(simd)
rust-lang/rust/pull/59201

Add Cmp::clamp for ranges
rust-lang/rust/pull/58710

Stabilize Range*::contains
rust-lang/rust/pull/59152

Change std::fs::copy to use copyfile on MacOS and iOS
rust-lang/rust/pull/58901

Stabilize Option::copied
rust-lang/rust/pull/59231

cargo: Fix resolving yanked crates when using a local registry
rust-lang/cargo/pull/6742

cargo: Stricter package change detection
rust-lang/cargo/pull/6740
News

Writing an OS in Rust: Paging implementation.
os.phil-opp.com

Fast, bump-allocated virtual DOMs with Rust and Wasm.
hacks.mozilla.org

Implementing a NES emulator in Rust.
www.michaelburge.us

Porting the UNIX-like Redox OS to Arm v8.0.
fosdem.org

A Rust API for librnoscript.
people.gnome.org

Embedded in Rust: Implementing a static stack usage analysis tool.
blog.japaric.io

Scientific computing: a Rust adventure (part 1 - zero-cost abstractions).
www.lpalmieri.com

Web Programming in Rust - 02/x: Deployments.
dev.to

Announcing Governance Working Group.
internals.rust-lang.org
Crate of the week: copyless

This week's crate is copyless, a crate to extend boxes and vecs to operate on values while avoiding memcpys. Thanks to Dzmitry Malyshau for the suggestion!
Updates from core

Move libtest out of rust-lang/rust
rust-lang/rust/pull/57842

Introduce assembly tests suite
rust-lang/rust/pull/58791

syntax: Better recovery for $ty::AssocItem and ty!()::AssocItem
rust-lang/rust/pull/59058

MIR optimization: Run branch cleanup after copy propagation
rust-lang/rust/pull/59290

Do not complain about non-existing fields after parse recovery
rust-lang/rust/pull/59266

Make meta-item API compatible with LocalInternedString::get soundness fix
rust-lang/rust/pull/59256

Use a valid name for graphviz graphs
rust-lang/rust/pull/59251

When moving out of a for loop head, suggest borrowing it
rust-lang/rust/pull/59195

When encountering ||{}(), suggest the likely intended (||{})()
rust-lang/rust/pull/59035

Point at coercion reason for if expressions without else clause if caused by return type
rust-lang/rust/pull/58981

Elide object safety errors on non-existent trait function
rust-lang/rust/pull/58929

Unify OsString/OsStr for byte-based implementations
rust-lang/rust/pull/58953

Add provided methods Seek::{stream_len, stream_position}
rust-lang/rust/pull/58422

Add todo!() macro
rust-lang/rust/pull/56348

Implement ExactSizeIterator for ToLowercase and ToUppercase
rust-lang/rust/pull/58778

Make Option<ThreadId> no larger than ThreadId with NonZeroU64
rust-lang/rust/pull/59291

Stabilize refcell_map_split feature
rust-lang/rust/pull/59280

Add const generics to rustdoc
rust-lang/rust/pull/59170

crates.io: Allow download counts to fail to be updated
rust-lang/crates.io/pull/1675
News

Why Hashbrown (Rust's new HashMap implementation) does a double-lookup on insertion.
gankro.github.io

Chaining functions without returning self.
randompoison.github.io

"Learning Rust With Entirely Too Many Linked Lists" has been updated for Rust 2018.
rust-unofficial.github.io

Miri available as rustup component.
www.ralfj.de

How to debug Rust with Visual Studio Code.
www.forrestthewoods.com

Rust: The hard parts - part one: References, borrowing, and ownership.
naftuli.wtf

Procedural macro in Rust 101.
dev.to

Generalizing seqlocks: The swym algorithm.
mtak-blog.github.io

The phantom builder.
wiredforge.com

Variance in Rust: An intuitive explanation.
ehsanmkermani.com

Rust All Hands 2019: Array iterators, Rayon, and more.
developers.redhat.com

This week in Rust and WebAssembly 14.
rustwasm.github.io

The Embedded WG newsletter 17.
rust-embedded.github.io
Crate of the week: safety-guard

This week's crate is safety-guard, a crate providing a #[safety] attribute that generates both a doc entry and debug assertion. Thanks to Willi Kappler for the suggestion!
Updates from core

Add intial support for wasm32-unknown-wasi
rust-lang/libc/pull/1307

Allow closure to unsafe fn coercion
rust-lang/rust/pull/59580

Include bounds in generic re-ordering diagnostic
rust-lang/rust/pull/59572

Optimize indentation in the pretty printer
rust-lang/rust/pull/59507

Use SmallVec in TokenStreamBuilder
rust-lang/rust/pull/59476

Make ASCII case conversions more than 4× faster
rust-lang/rust/pull/59283

Adjust MaybeUninit API to discussions
rust-lang/rust/pull/59284

Introduce proc_macro::Span::source_text
rust-lang/rust/pull/55780

Add Default to std::alloc::System
rust-lang/rust/pull/59451

Add FromStr impl for NonZero types
rust-lang/rust/pull/58717

Implement AsRawFd for stdio locks
rust-lang/rust/pull/59512

Simplify checked_duration_since
rust-lang/rust/pull/59374

Stabilize refcell_replace_swap
rust-lang/rust/pull/59581

stabilize ptr::hash
rust-lang/rust/pull/59603

Stabilize {f32, f64}::copysign()
rust-lang/rust/pull/59503

cargo metadata: Don't show null deps
rust-lang/cargo/pull/6534

cargo install: Be more restrictive about cli flags
rust-lang/cargo/pull/6801

rustdoc: Fix infinite recursion
rust-lang/rust/pull/59539

rustdoc: collapse blanket impls in the same way as normal impls
rust-lang/rust/pull/59534
News

Five super helpful Rust things that nobody told you about.
saghm.github.io

RaptorQ (RFC6330) and performance optimization in Rust.
www.cberner.com

Idiomatic monads in Rust.
varkor.github.io

BoringTun, a userspace WireGuard implementation in Rust.
blog.cloudflare.com

Understanding futures in Rust - part 1.
www.viget.com

Mocking in Rust with conditional compilation.
klausi.github.io

Face detection with Tensorflow Rust.
cetra3.github.io

DSL in Rust: Challenges.
blog.yoshuawuyts.com

Explained: How does async work in Rust?
dev.to

This week in Rust and WebAssembly 15.
rustwasm.github.io
Crate of the week: sonic

This week's crate is sonic, a fast, lightweight & schema-less search backend. Thanks to Vikrant for the suggestion!
Updates from core

Show better errors for LLVM IR output
rust-lang/rust/pull/59744

Use for_each to extend collections
rust-lang/rust/pull/59740

wasi: Use shared API for preopened file denoscriptors
rust-lang/rust/pull/59727

Never return uninhabited values at all
rust-lang/rust/pull/59639

Shrink mir::Statement
rust-lang/rust/pull/59630

Refactor async fn return type lowering
rust-lang/rust/pull/59286

Unsized rvalues: implement boxed closure impls
rust-lang/rust/pull/59500

Fixes for shallow borrows
rust-lang/rust/pull/59585

Suggest using anonymous lifetime in impl Trait return
rust-lang/rust/pull/58919

Fix invalid bounds string generation in rustdoc
rust-lang/rust/pull/58894

More restrictive 2 phase borrows - take 2
rust-lang/rust/pull/58739

Tweak Span encoding
rust-lang/rust/pull/58458

Add 'partition_at_index/_by/_by_key' for slices
rust-lang/rust/pull/55448

Support allocating iterators with arenas
rust-lang/rust/pull/59533

Remove duplicated code from Iterator::{ne, lt, le, gt, ge}
rust-lang/rust/pull/59262

Forward formatter settings to bounds of Range<T> in fmt::Debug impl
rust-lang/rust/pull/59596

std: Avoid usage of Once in Instant
rust-lang/rust/pull/59676

Improve worst-case performance of HashSet.is_subset
rust-lang/rust/pull/59665

Improve worst-case performance of BTreeSet intersection
rust-lang/rust/pull/59186

Implement useful steps_between for all integers
rust-lang/rust/pull/59444

cargo: Add install-upgrade
rust-lang/cargo/pull/6798

cargo: Improve error message to rerun a test in a workspace
rust-lang/cargo/pull/6824

cargo Resolve: Be less strict while offline
rust-lang/cargo/pull/6814

cargo: Add more suggestions on how to deal with excluding a package from a workspace
rust-lang/cargo/pull/6805

Allow cargo install --path P to load config from P
rust-lang/cargo/pull/6804

Allow cargo doc --open with multiple packages
rust-lang/cargo/pull/6803

Speed up rustdoc run
rust-lang/rust/pull/59452

crates.io: Add monitoring for common spam patterns
rust-lang/crates.io/pull/1678
News

Rust is the most loved language four years in a row.
insights.stackoverflow.com

How to compose functions in Rust.
stackoverflow.com

A basic web application with Rust and Actix-web.
zupzup.org

More tricks up in the ArcSwap’s sleeve.
vorner.github.io

Arenas vs. indices.
llogiq.github.io

Protocols in Tokio (i3 IPC).
leshow.github.io

Array1 and function traits (scientific computing: a Rust adventure, part 2).
www.lpalmieri.com
Crate of the week: interact

This week's crate is interact, a framework for online introspection of the running program state. Thanks to Willi Kappler for the suggestion!
Updates from core

save-analysis: Pull associated type definition using qpath_def
rust-lang/rust/pull/59894

Recover from missing semicolon based on the found token
rust-lang/rust/pull/59866

Increase Span from 4 bytes to 8 bytes
rust-lang/rust/pull/59693

proc_macro: Stop using LEB128 for RPC
rust-lang/rust/pull/59820

Remove duplicated redundant spans
rust-lang/rust/pull/59896

Mark variables captured by reference as mutable correctly
rust-lang/rust/pull/59708

Suggest removing ? to resolve type errors
rust-lang/rust/pull/59859

Make duplicate matcher bindings a hard error
rust-lang/rust/pull/59858

Improvement for comparision against fn
rust-lang/rust/pull/59798

Suggest importing macros from the crate root
rust-lang/rust/pull/59784

Function arguments should never get promoted
rust-lang/rust/pull/59724

miri: Implement non-deterministc mode
rust-lang/miri/pull/683

miri: Unsized locals and by-value dyn traits
rust-lang/rust/pull/59780

std: Add {read, write}_vectored for more types
rust-lang/rust/pull/59852

MaybeUninit: Remove deprecated functions
rust-lang/rust/pull/59912

Stabilize the alloc crate
rust-lang/rust/pull/59675

Improve warning in cargo new with parse error
rust-lang/cargo/pull/6839

rustup.rs: Less copying during dist installation
rust-lang/rustup.rs/pull/1744

rustup.rs: Shell completions for Cargo
rust-lang/rustup.rs/pull/1646

Add --path option to 'rustup override set'
rust-lang/rustup.rs/pull/1524
News

🎈🎉 Announcing Rust 1.34.0. 🎉🎈
blog.rust-lang.org

ripgrep 11 released.
BurntSushi/ripgrep/releases/tag/11.0.0

Introducing Runtime, a platform-agnostic library that intends to make Async Rust both flexible and easy.
blog.yoshuawuyts.com

A love letter to Rust macros.
happens.lol

Rust: beyond the typechecker.
blog.merigoux.fr

Face detection with Actix web.
cetra3.github.io

Compiler team needs more than coders.
smallcultfollowing.com

for await loops (Part I).
boats.gitlab.io

Keeping Rust projects' README.md code examples up-to-date.
blog.guillaume-gomez.fr

Making an iterator from a function.
weblog.latte.ca

cargo-call-stack, part 2: getting call graph information from rustc.
blog.japaric.io

Web development with Rust — 03/x: Create a REST API.
dev.to

Building a pub/sub server with Sonr.
hagsteel.com
Crate of the week: sendfd

This week's crate is sendfd, a simple way to send file denoscriptors over UNIX sockets. Thanks to Léo Gaspard for the suggestion!