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

implement unsafe blocks in unsafe fn (RFC #2585)
rust-lang/rust/pull/71862

exhaustiveness checking: work around type normalization issues
rust-lang/rust/pull/72506

suggest using std::mem::drop function instead of explicit destructor call
rust-lang/rust/pull/72383

add a lint against references to packed fields
rust-lang/rust/pull/72270

avoid setting wrong obligation cause span of associated type mismatch
rust-lang/rust/pull/72807

account for trailing comma when suggesting where clauses
rust-lang/rust/pull/72715

fix diagnostics for @ .. binding pattern in tuples and tuple structs
rust-lang/rust/pull/72677

chalk: request hidden opaque types lazily
rust-lang/chalk/pull/478

miri: synchronization primitive cleanup
rust-lang/miri/pull/1441

from_u32_unchecked: check validity, and fix UB in Wtf8
rust-lang/rust/pull/72683

implement total_cmp for f32, f64
rust-lang/rust/pull/72568

override Box::<[T]>::clone_from
rust-lang/rust/pull/72499

add Extend::{extend_one, extend_reserve}
rust-lang/rust/pull/72162

make pointer offset methods/intrinsics const
rust-lang/rust/pull/71500

impl From<[T; N]> for Box<[T]>
rust-lang/rust/pull/71095

stabilization of weak-into-raw
rust-lang/rust/pull/72288

resolve UB in Arc/Weak interaction, part 2
rust-lang/rust/pull/72533

stabilize str_strip feature
rust-lang/rust/pull/72466

impl Step for char (make Range*<char> iterable)
rust-lang/rust/pull/72413

add Peekable::next_if
rust-lang/rust/pull/72310

various minor improvements to Ipv6Addr::Display
rust-lang/rust/pull/72407

SocketAddr and friends now correctly pad its content
rust-lang/rust/pull/72398

implement PartialOrd and Ord for SocketAddr*
rust-lang/rust/pull/72239

tweak and stabilize AtomicN::fetch_update
rust-lang/rust/pull/71843

stabilize AtomicN::fetch_{min, max}
rust-lang/rust/pull/72324

stdarch: add 64 bit integer AVX512f comparisons and the intrinsics needed to test them
rust-lang/stdarch/pull/856

stdarch: add 64 bit AVX512f le and ge comparisons
rust-lang/stdarch/pull/861

libm: use macros for more division/array checks
rust-lang/libm/pull/244
News

RustConf 2020 Registration is Open
rustconf.com/

2020 Contributor Survey
blog.rust-lang.org

A retrospective on the 2018 rust-lang.org redesign
blog.rust-lang.org

Rust Disassembly: Part 1
giordi91.github.io

Fuzzing Sequoia-PGP
blog.hackeriet.no

Mutex in async world
kitsu.me

Custom types in Diesel
kitsu.me

Auto-Vectorization for Newer Instruction Sets in Rust
www.nickwilcox.com

Current State of Embedded Rust for Flight Controllers
https://gist.github.com/tstellanova/81c963f556522447dd007a0c3a84ebc3

3D boids swimming along in perfect harmony; Implementing the boids flocking algorithm in Rust
www.reddit.com

Coverage Marks
ferrous-systems.com

Ringbahn: a safe, ergonomic API for io-uring in Rust
boats.gitlab.io

rust-analyzer changelog #26
rust-analyzer.github.io

Why I'm enjoying learning Rust as a Java programmer
opensource.com

Contributing to Rust
blog.elinvynia.com

Get a Look on Key Rust Crates for WebAssembly
blog.knoldus.com

10 Most Loved Programming Languages: Rust, TypeScript, and More
insights.dice.com

Creating a Ruby Gem with Rust
richardpatching.com

Designing the Rust Unleash API client
medium.com/cognite

How to build a WebSocket server with Rust
blog.logrocket.com

Invoking Functions on Distributed Game Objects
dev.to

IPv6 and Rust
blog.apnic.net

Rust as a High Level Language
llogiq.github.io

Sorting algorithms in Rust
dev.to

Programming Servo: integrating streams
medium.com/@polyglot_factotum

To Rust or not to Rust
oldmill.cz

[Spanish] Aprende Rust en español
dev.to

[video] A Rust & Wasm tutorial on building Bitcoin infrastructure. Rust beginner-friendly!
www.youtube.com

[video] Crust of Rust: Iterators
www.youtube.com

[video] Rust and Tell Berlin - May 2020
www.youtube.com
Crate of the week: jql

This week's crate is jql, a JSON Query Language CLI tool.
Updates from core

InstCombine: don't optimize &mut *x into x
rust-lang/rust/pull/72820

add -Z span-debug to allow for easier debugging of proc macros
rust-lang/rust/pull/72799

avoid setting wrong obligation cause span of associated type mismatch
rust-lang/rust/pull/72807

be more careful around ty::Error in generators
rust-lang/rust/pull/72764

fulfill: try using SmallVec or Box for stalled_on
rust-lang/rust/pull/72776

impl AsRef<[T]> for vec::IntoIter<T>
rust-lang/rust/pull/72583

chalk: get ready for the first publish
rust-lang/chalk/pull/483

free default() forwarding to Default::default()
rust-lang/rust/pull/73001

stabilize std::io::Buf{Reader, Writer}::capacity
rust-lang/rust/pull/72924

add associated consts MIN/MAX for Wrapping<Int>
rust-lang/rust/pull/72891

de-promote Duration::from_secs
rust-lang/rust/pull/71796

compiler-builtins: manually patch ret instruction for LVI
rust-lang/compiler-builtins/pull/359

cargo: add environment variables to identify the binary and crate name
rust-lang/cargo/pull/8270

cargo: allow Windows dylibs without dll suffix
rust-lang/cargo/pull/8310

cargo: better error message when passing in relative path to Workspace::new
rust-lang/cargo/pull/8321

cargo: don't hash executable filenames on apple platforms
rust-lang/cargo/pull/8329

cargo: support {prefix} and {lowerprefix} markers in config.json dl key
rust-lang/cargo/pull/8267

cargo: warn if using hash in git URL
rust-lang/cargo/pull/8297

cargo: reset lockfile information between resolutions
rust-lang/cargo/pull/8274

crates.io: fix issue where crates.io allowed the plus sign in crate names
rust-lang/crates.io/pull/2551

docs.rs: print a backtrace for crates which fail to build
rust-lang/docs.rs/pull/823

rustfmt: pick up comments between visibility modifier and item name
rust-lang/rustfmt/pull/4239

rustfmt: preserve Markdown line breaks in inner and outer block doc comments
rust-lang/rustfmt/pull/4233

rustfmt: use rewrite buffer to determine if comment should be on a newline
rust-lang/rustfmt/pull/4229

rustfmt: feat: conditionally allow unstable opts on stable/beta
rust-lang/rustfmt/pull/4228
News

Announcing Rust 1.44.0
blog.rust-lang.org

RustConf 2020 Registration is Open
rustconf.com/

Enumerating monitors in Rust using Win32 API
patriksvensson.se

Rust cli app integrated with slack
bprog.github.io

Hack week: miniCouchDB in Rust
www.garrensmith.com

Zero To Production #1: toolchains, IDEs, CI
www.lpalmieri.com

From Rust to Svelte, what tech stack will I use
hugodaniel.pt

Graph & Tree Traversals in Rust
sachanganesh.com

Programming languages: Rust enters top 20 popularity rankings for the first time
www.zdnet.com

A Rust SentencePiece implementation
guillaume-be.github.io

Rust Things I Miss in C
people.gnome.org

So What's Up with Microsoft's (and Everyone Else's) Love of Rust?
visualstudiomagazine.com

Why the developers who use Rust love it so much
stackoverflow.blog

The Story of Tail Call Optimizations in Rust
dev.to

Taking the Unhappy Path with Result, Option, unwrap and ? operator in Rust
dev.to

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

This Month in Rust GameDev #10 - May 2020
rust-gamedev.github.io

This month in rustsim #11 (April - May 2020)
www.rustsim.org

Rust in Blockchain Newsletter #12 - ZK-Rustups
rustinblockchain.org

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

Creating Your Own Programming Language with Rust
createlang.rs/

rust-analyzer changelog #28
rust-analyzer.github.io

Getting started with Rust/WinRT
kennykerr.ca

[Chinese] Simple sorting algorithms in Rust
www.bilibili.com

[Indonesian] Berbagai alasan melakukan Programming dalam Rust
dev.to

[slides] Rust in 15 Minutes
geigerkind.github.io

[video] Rust Web development | Boilerplate free with Rocket
youtu.be

[video] Educational Rust Live Coding - Building a web app - Part 4
www.youtube.com

[video] Iterators - Rust
www.youtube.com

[video] Browser computation with WebAssembly Live Stream
www.twitch.tv

[video] Jonathan Teaches Jason Rust!
www.youtube.com
Crate of the week: cargo-spellcheck

This week's crate is cargo-spellcheck, a cargo subcommand to spell-check your docs.
News

2020 Event Lineup - Update
blog.rust-lang.org

New inline assembly syntax available in nightly
blog.rust-lang.org

Announcing RustFest Global 2020 🎉
blog.rustfest.eu

RustConf 2020 Registration is Open
rustconf.com/

Understanding the Rust Ecosystem
joeprevite.com

You Want to Learn Rust but You Don’t Know Where to Start
towardsdatascience.com

7 Awesome Rust-powered Command-line Utilities
towardsdatascience.com

Rust-Powered Command-Line Utilities to Increase Your Productivity
towardsdatascience.com

Errors in Rust: A Deep Dive
www.halcyon.hr

Hyper Traps
vorner.github.io

Getting Started With The STM32 Nucleo-F302R8 and Rust
blue42.net

Microsoft: Rust is the Industry's 'Best Chance' at Safe Systems Programming
thenewstack.io

Tour of Rust: Chapter 7 - Object Oriented Programming
tourofrust.com

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

Rustls Security Review & Audit Report
ctz/rustls/blob/master/audit/TLS-01-report.pdf

NDArray Index Arrays and Mask Index Arrays
shahinrostami.com

Two Memory Bugs From Ringbahn
without.boats

Dart Meets Rust: a match made in heaven
dev.to

C++ Developer Learning Rust!
dev.to

Container with Most Water
dev.to

Generics and Compile-Time in Rust
pingcap.com

Improve the performances of your Phoenix app with Rust: in both back and front
dev.to

Improving the IDE for Rust/WinRT
kennykerr.ca

My Experiences with Rust Open Source Projects
javednissar.ca

Playing Codenames with Rust
rolisz.ro

Spend your novelty budget on Rust
tim.mcnamara.nz

The Rust compiler isn't slow; we are.
blog.kodewerx.org

The Story of Tail Call Optimizations in Rust
dev.to

[audio] AreWePodcastYet - Interview with Tim McNamara, author of Rust in Action
soundcloud.com

[video] Rust Notebooks (Jupyter and Evcxr) - Getting Started
www.youtube.com
Crate of the week: safer_ffi

This week's crate is safer_ffi, a library to help write safe FFI code.
Updates from core

add asm!() support for hexagon
rust-lang/rust/pull/73214

enable LLVM zlib
rust-lang/rust/pull/72696

add methods to go from a nul-terminated Vec<u8> to a CString
rust-lang/rust/pull/73139

allow multiple asm! options groups and report an error on duplicate options
rust-lang/rust/pull/73227

diagnose use of incompatible sanitizers
rust-lang/rust/pull/73347

disallow loading crates with non-ascii identifier name
rust-lang/rust/pull/73305

export #[inline] fns with extern indicators
rust-lang/rust/pull/73034

fix up autoderef when reborrowing
rust-lang/rust/pull/72280

further tweak lifetime errors involving dyn Trait and impl Trait in return position
rust-lang/rust/pull/72804

implement crate-level-only lints checking.
rust-lang/rust/pull/73300

implement new gdb/lldb pretty-printers
rust-lang/rust/pull/72357

improve diagnostics for let x += 1
rust-lang/rust/pull/71976

make need_type_info_err more conservative
rust-lang/rust/pull/73027

make all uses of ty::Error delay a span bug
rust-lang/rust/pull/70551

make new type param suggestion more targetted
rust-lang/rust/pull/73320

make novel structural match violations not a bug
rust-lang/rust/pull/73446

only display other method receiver candidates if they actually apply
rust-lang/rust/pull/73382

prefer accessible paths in 'use' suggestions
rust-lang/rust/pull/72623

prevent attacker from manipulating FPU tag word used in SGX enclave
rust-lang/rust/pull/73471

projection bound validation
rust-lang/rust/pull/72788

report error when casting an C-like enum implementing Drop
rust-lang/rust/pull/72331

specialization is unsound
rust-lang/rust/pull/71420

use min_specialization in the remaining rustc crates
rust-lang/rust/pull/72707

add specialization of ToString for char
rust-lang/rust/pull/73465

suggest ?Sized when applicable for ADTs
rust-lang/rust/pull/73261

support sanitizers on aarch64-unknown-linux-gnu
rust-lang/rust/pull/73058

test that bounds checks are elided when slice len is checked up-front
rust-lang/rust/pull/73362

try to suggest dereferences on trait selection failed
rust-lang/rust/pull/72456

use track caller for bug! macro
rust-lang/rust/pull/73373

forbid mutable references in all constant contexts except for const-fns
rust-lang/rust/pull/72934

linker: MSVC supports linking static libraries as a whole archive
rust-lang/rust/pull/72785

linker: never pass -no-pie to non-gnu linkers
rust-lang/rust/pull/73384

lint: normalize projections using opaque types
rust-lang/rust/pull/73287

add a lint to catch clashing extern fn declarations.
rust-lang/rust/pull/70946

memory access sanity checks: abort instead of panic
rust-lang/rust/pull/73054

pretty/mir: const value enums with no variants
rust-lang/rust/pull/73442

store ObligationCause on the heap
rust-lang/rust/pull/72962

chalk: add closures
rust-lang/chalk/pull/519

chalk: ignore auto traits order
rust-lang/chalk/pull/531

fix asinh of negative values
rust-lang/rust/pull/72486

stabilize Option::zip
rust-lang/rust/pull/72938

stabilize vec::Drain::as_slice
rust-lang/rust/pull/72584

use Ipv4Addr::from<[u8; 4]> when possible
rust-lang/rust/pull/73389

core/time: Add Duration methods for zero
rust-lang/rust/pull/72790

deprecate wrapping_offset_from
rust-lang/rust/pull/73580

hashbrown: avoid creating small tables with a capacity of 1
rust-lang/hashbrown/pull/162

stdarch: add AVX 512f gather, scatter and compare intrinsics
rust-lang/stdarch/pull/866

cargo: adding environment variable CARGO_PKG_LICENSE
rust-lang/cargo/pull/8325

cargo: cut down on data fetch from git dependencies
rust-lang/cargo/pull/8363

cargo: fix doctests not running with --target=HOST
rust-lang/cargo/pull/8358

cargo: fix order-dependent feature resolution.
rust-lang/cargo/pull/8395

cargo: fix overzealous clean -p for reserved names
rust-lang/cargo/pull/8398

cargo: support linker with -Zdoctest-xcompile.
rust-lang/cargo/pull/8359

rustfmt: avoid using Symbol::intern
rust-lang/rustfmt/pull/4268

rustfmt: ensure idempotency on empty match blocks
rust-lang/rustfmt/pull/4271
News

Announcing Rust 1.44.1
blog.rust-lang.org

Writing Non-Trivial Macros in Rust
adventures.michaelfbryan.com

Diving into Rust with a CLI
kbknapp.dev

Rust for Data-Intensive Computation
materialize.io

3K, 60fps, 130ms: achieving it with Rust
blog.tonari.no

Rust concurrency: the archetype of a message-passing bug.
medium.com/@polyglot_factotum

How to Design For Panic Resilience in Rust
towardsdatascience.com

GitHub Action for binary crates installation
svartalf.info

Managing Rust bloat with Github Actions
tomforb.es

A multiplayer board game in Rust and WebAssembly
www.mattkeeter.com

Im bad at unsafe {}
djugei.github.io

SIMD library plans
vorner.github.io

Tips for Faster Rust Compile Times
endler.dev

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

Building A Blockchain in Rust & Substrate: A Step-by-Step Guide for Developers
hackernoon.com

Dart and Rust: the async story
dev.to

Decode a certificate
dev.to

Four Years of Rust At OneSignal
onesignal.com

How Rust Lets Us Monitor 30k API calls/min
blog.bearer.sh

How to use C++ polymorphism in Rust
medium.com/swlh

Implementing a Type-safe printf in Rust
willcrichton.net

Introduction to Rust for Node Developers
dev.to

The programming language that wants to rescue the world from dangerous code
www.protocol.com

Property-based testing in Rust with Proptest
blog.logrocket.com

Rust at CNCF
www.cncf.io

Rust's Huge Compilation Units
pingcap.com

RustHorn: CHC-Based Verification for Rust Programs
link.springer.com

Shipping Linux binaries that don't break with Rust
saarw.github.io

Some examples of Rust Lifetimes in a struct
dev.to

Static PIE and ASLR for the x86_64-unknown-linux-musl Target
harald.hoyer.xyz

Three bytes to an integer
dev.to

Using Rust to Delete Gitignored Cruft
www.forrestthewoods.com

Tour of Rust - Chapter 8 - Smart Pointers
tourofrust.com

Thread-local Storage - Part 13 of Making our own executable packer
fasterthanli.me

RISC-V OS using Rust - Chapter 11
osblog.stephenmarz.com

Zero To Production #2: Learn By Building An Email Newsletter
www.lpalmieri.com

[video] Crust of Rust: Smart Pointers and Interior Mutability
www.youtube.com

[video] CS 196 at Illinois
www.youtube.com

[video] Ask Me Anything with Felix Klock
www.youtube.com

[video] Rust Stream: The Guard Pattern and Interior Mutability
www.youtube.com
Crate of the week: diskonaut

This week's crate is diskonaut, a disk usage explorer.
News

A practical guide to async in Rust
blog.logrocket.com

Secure Rust Guidelines - ANSSI (National Cybersecurity Agency of France)
anssi-fr.github.io

Faster Rust development on AWS EC2 with VSCode
dev.to

Rust verification tools
alastairreid.github.io

Examining ARM vs X86 Memory Models with Rust
www.nickwilcox.com

Disk space and LTO improvements
blog.rust-lang.org

Building a faster CouchDB View Server in Rust
www.garrensmith.com

Implementing a Job queue with SQLx and Postgres
cetra3.github.io

Rust + Actix + CosmosDB (MongoDB) tutorial api
dev.to

Extremely Simple Rust Rocket Framework Tutorial
frogtok.com

Build a Smart Bookmarking Tool with Rust and Rocket
developers.facebook.com

A Future is a Suspending Scheduler
nikhilism.com

Cross building Rust GStreamer plugins for the Raspberry Pi
www.collabora.com

xi-editor retrospective
raphlinus.github.io

This month in my Database project written in Rust
alex-dukhno.github.io

A Few More Reasons Rust Compiles Slowly
pingcap.com

Fixing Rust's test suite on RISC-V
www.codethink.co.uk

Protobuf code generation in Rust
dev.to

Tracking eye centers location with Rust & OpenCV
www.blog.nodrama.io

Using rust, blurz to read from a BLE device
dev.to

rust-analyzer changelog #31
rust-analyzer.github.io

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

[video] Manipulating ports, virtual ports and pseudo terminals - Rust Wrocław Webinar
www.youtube.com

[video] Rust Stream: Iterators
www.youtube.com
Crate of the week: print_bytes

This week's crate is print_bytes, a library to print arbitrary bytes to a stream as losslessly as possible.
Updates from core

add format_args_capture feature
rust-lang/rust/pull/73670

don't implement Fn* traits for #[target_feature] functions
rust-lang/rust/pull/73306

fix wasm32 being broken due to a NodeJS version bump
rust-lang/rust/pull/73885

handle macro_rules! tokens consistently across crates
rust-lang/rust/pull/73569

implement slice_strip feature
rust-lang/rust/pull/73414

make likely and unlikely const, gated by feature const_unlikely
rust-lang/rust/pull/73778

optimise fast path of checked_ops with unlikely
rust-lang/rust/pull/73938

provide more information on duplicate lang item error.
rust-lang/rust/pull/73449

remove TypeckTables::empty(None) and make hir_owner non-optional.
rust-lang/rust/pull/73751

remove unnecessary release from Arc::try_unwrap
rust-lang/rust/pull/74025

serialize all foreign SourceFiles into proc-macro crate metadata
rust-lang/rust/pull/73706

stabilize #[track_caller].
rust-lang/rust/pull/72445

use WASM's saturating casts if they are available
rust-lang/rust/pull/73724

use Spans to identify unreachable subpatterns in or-patterns
rust-lang/rust/pull/73973

Update the rust-lang/llvm-project submodule to include AVR fixes recently merged
rust-lang/rust/pull/73658

mir-opt: Fix mis-optimization and other issues with the SimplifyArmIdentity pass
rust-lang/rust/pull/73949

added .collect() into String from Box<str>
rust-lang/rust/pull/72688

impl From<char> for String
rust-lang/rust/pull/73466

linker: create GNU_EH_FRAME header by default when producing ELFs
rust-lang/rust/pull/73564

resolve: disallow labelled breaks/continues through closures/async blocks
rust-lang/rust/pull/73726

ship rust analyzer
rust-lang/rust/pull/72978

chalk: add type outlives goal
rust-lang/chalk/pull/551

chalk: allow printing lifetime placeholders
rust-lang/chalk/pull/557

chalk: support for ADTs
rust-lang/chalk/pull/524

hashbrown: add RawTable::erase and remove
rust-lang/hashbrown/pull/171

hashbrown: expose RawTable::try_with_capacity
rust-lang/hashbrown/pull/174

hashbrown: improve RawIter re-usability
rust-lang/hashbrown/pull/175

libc: add a bunch of constants and functions which were missing on Android
rust-lang/libc/pull/1795

libc: add more WASI libc definitions.
rust-lang/libc/pull/1811

libc: declare seekdir and telldir for WASI.
rust-lang/libc/pull/1804

stdarch: fix or equals integer comparisons
rust-lang/stdarch/pull/872

cargo: write GNU tar files, supporting long names.
rust-lang/cargo/pull/8453

crates.io: use default branch alias instead of "master"
rust-lang/crates.io/pull/2601

clippy: added restriction lint: pattern-type-mismatch
rust-lang/rust-clippy/pull/4841

clippy: suggest Option::map_or(_else) for if let Some { y } else { x }
rust-lang/rust-clippy/pull/5301

rustfmt: do not duplicate const keyword on parameters
rust-lang/rustfmt/pull/4294

rustfmt: do not remove fn headers (e.g., async) on extern fn items
rust-lang/rustfmt/pull/4291

rustfmt: pick up comments between trait where clause and open block
rust-lang/rustfmt/pull/4292