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
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!
Updates from core

Implement event filtering for self-profiler
rust-lang/rust/pull/59915

Continue evaluating after missing main
rust-lang/rust/pull/59903

Point at try ? on errors affecting the err match arm of the desugared code
rust-lang/rust/pull/60064

Make const parameters enforce no variance constraints
rust-lang/rust/pull/60058

save-analysis: Use serde instead of libserialize to dump JSON data
rust-lang/rust/pull/60053

Fix ICE on const evaluation of const method
rust-lang/rust/pull/60048

Specialize nth_back() for Bytes, Fuse and Enumerate
rust-lang/rust/pull/60023

Fix the max value of usize on 16-bit platforms
rust-lang/rust/pull/60013

Fix LinkedList invalidating mutable references
rust-lang/rust/pull/60072

Allow multiple args to dbg!(..)
rust-lang/rust/pull/59826

Add must_use annotations to Result::is_ok and is_err
rust-lang/rust/pull/59648

chalk: Remove coinductive_traits from ProgramEnvironment
rust-lang/chalk/pull/213

chalk: Simplify crate structure
rust-lang/chalk/pull/215

cargo: Treat HTTP/2 stream errors as spurious network errors
rust-lang/cargo/pull/6861

cargo: Validate registry token before operations that require it
rust-lang/cargo/pull/6854

cargo: Pass OsStr/OsString args through to the process spawned by cargo run
rust-lang/cargo/pull/6849

rustdoc: Remove default keyword from re-exported trait methods
rust-lang/rust/pull/59978
News

Rust's 2019 roadmap.
blog.rust-lang.org

Amethyst receives Mozilla grant for WASM development.
www.amethyst.rs

6 useful Rust macros that you might not have seen before.
medium.com/@benmcdonald_11671

Learning parser combinators with Rust.
bodil.lol

What not to do in Rust.
blog.sentry.io

Generic returns in Rust.
blog.jcoglan.com

Futures 0.1 compatibility layer.
rust-lang-nursery.github.io

What I learned from my failed attempt of writing baremetal android in Rust.
onatm.dev

Building a plugin system using Rust and Wasmer (part 2, part 3).
wiredforge.com

Using DMA to transfer data with embedded Rust.
flowdsp.io

AiC: Adventures in consensus.
smallcultfollowing.com

rustup 1.18.0 released.
rust-lang/rustup.rs/blob/master/CHANGELOG.md#1180---2019-04-22

RustFest 2019 - next stop: Barcelona.
blog.rustfest.eu

Videos from Rust Latam 2019.
www.youtube.com
Crate of the week: color-backtrace

This week's crate is color-backtrace, a crate to give panic backtraces more information (and some color, too). Thanks to Willi Kappler for the suggestion!