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

update to LLVM 10
rust-lang/rust/pull/67759

llvm: expose tiny code model to users
rust-lang/rust/pull/72397

enable ARM TME (Transactional Memory Extensions)
rust-lang/rust/pull/72438

implement new asm! syntax from RFC #2850
rust-lang/rust/pull/69171

always generated object code for #![no_builtins]
rust-lang/rust/pull/72325

break tokens before checking if they are 'probably equal'
rust-lang/rust/pull/72306

emit a better diagnostic when function actually has a 'self' parameter
rust-lang/rust/pull/72308

stabilize fn-like proc macros in expression, pattern and statement positions
rust-lang/rust/pull/68717

use once_cell crate instead of custom data structure
rust-lang/rust/pull/72256

simple NRVO
rust-lang/rust/pull/72205

remove ReScope
rust-lang/rust/pull/72362

exhaustively check ty::Kind during structural match checking
rust-lang/rust/pull/72153

move borrow-of-packed-field unsafety check out of loop
rust-lang/rust/pull/72269

fix InlineAsmOperand expresions being visited twice during liveness checking
rust-lang/rust/pull/72537

chalk: cleanup crate structure and add features for SLG/recursive solvers
rust-lang/chalk/pull/459

check non-Send/Sync upvars captured by generator
rust-lang/rust/pull/71923

support coercion between FnDef and arg-less closure and vice versa
rust-lang/rust/pull/71599

more lazy normalization of constants
rust-lang/rust/pull/71973

miri: prepare Dlsym system for dynamic symbols on Windows
rust-lang/miri/pull/1424

use T's discriminant type in mem::Discriminant<T> instead of u64
rust-lang/rust/pull/70705

fix discriminant type in generator transform
rust-lang/rust/pull/72502

impl From<Cow> for Box, Rc, and Arc
rust-lang/rust/pull/71447

another attempt to reduce size_of<HashMap>
rust-lang/hashbrown/pull/159

set initial non-empty Vec size to 4 instead of 1
rust-lang/rust/pull/72227

make std::char functions and constants associated to char
rust-lang/rust/pull/71854

stabilize saturating_abs and saturating_neg
rust-lang/rust/pull/71886

add len and slice_from_raw_parts to NonNull<[T]>
rust-lang/rust/pull/71940

add fast-path optimization for Ipv4Addr::fmt
rust-lang/rust/pull/72399

impl Ord for proc_macro::LineColumn
rust-lang/rust/pull/72446

cargo: try installing exact versions before updating
rust-lang/cargo/pull/8022

cargo: automatically update patch, and provide better errors if an update is not possible
rust-lang/cargo/pull/8248

cargo: add option to strip binaries
rust-lang/cargo/pull/8246

rustfmt: merge configs from parent directories
rust-lang/rustfmt/pull/4179

rustfmt: umprove error message when module resolution failed
rust-lang/rustfmt/pull/4198

rustfmt: parse comma-separated branches in macro definitions
rust-lang/rustfmt/pull/4173
News

Compiling Rust binaries for Windows 98 SE and more: a journey
seri.tools

Zero To Production #0: Foreword
www.lpalmieri.com

Some Extensive Projects Working with Rust
blog.knoldus.com

Writing Python inside your Rust code — Part 4
blog.m-ou.se

Drawing SVG Graphics with Rust
cetra3.github.io

Designing the Rust Unleash API Client
medium.com/cognite

Conway's Game of Life on the NES in Rust
gridbugs.org

How to organize your Rust tests
blog.logrocket.com

Just: How I Organize Large Rust Programs
rodarmor.com

Integrating Qt events into Actix and Rust
www.rubdos.be

Actix-Web in Docker: How to build small and secure images
dev.to

Angular, Rust, WebAssembly, Node.js, Serverless, and... the NEW Azure Static Web Apps!
dev.to

The Chromium project finds that around 70% of our serious security bugs are memory safety problems
www.chromium.org

Integration of AV-Metrics Into rav1e, the AV1 Encoder
dev.to

Oxidizing the technical interview
blog.mgattozzi.dev

Porting K-D Forests to Rust
tavianator.com

Rust Macro Rules in Practice
dev.to

Rust: Dropping heavy things in another thread can make your code 10000 times faster
abramov.io

Rust's Runtime
blog.mgattozzi.dev

[audio] Tech Except!ons: What Microsoft has to do with Rust? With Ryan Levick
anchor.fm

[video] [Russian] Rust: Not as hard as you think - Meta/conf: Backend Meetup 2020
www.youtube.com

[video] 3 Part Video for Beginners to Rust Programming on Iteration
tim.mcnamara.nz

[video] Bringing WebAssembly outside the web with WASI by Lin Clark
www.youtube.com

[video] Microsoft's Safe Systems Programming Languages Effort
mybuild.microsoft.com

[video] Rust, WebAssembly, and the future of Serverless by Steve Klabnik
www.youtube.com
Crate of the week: cargo-asm

This week's crate is cargo-asm, a cargo subcommand to show the resulting assembly of a function. Useful for performance work.
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.