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 RFC #2523, #[cfg(version(..))]
rust-lang.github.io

have the per-query caches store the results on arenas
rust-lang/rust/pull/70674

avoid duplicating code for each query
rust-lang/rust/pull/69808

forbid dyn Trait in patterns
rust-lang/rust/pull/71038

fix wrong argument in autoderef process
rust-lang/rust/pull/71627

suggest into instead of try_into if possible with int types
rust-lang/rust/pull/71617

tweak some suggestions in rustc_resolve
rust-lang/rust/pull/71438

add message for resolution failure because wrong namespace
rust-lang/rust/pull/71419

point at the return type on .into() failure caused by ?
rust-lang/rust/pull/71409

suggest ; or assignment to drop borrows in tail exprs
rust-lang/rust/pull/71217

on type mismatch involving associated type, suggest constraint
rust-lang/rust/pull/71108

minimize parameter of coerce_borrowed_pointer
rust-lang/rust/pull/71524

remove some Vec allocations to improve performance
rust-lang/rust/pull/71268

allow Unreachable terminators unconditionally in const-checking
rust-lang/rust/pull/71691

allow Downcast projections unconditionally in const-checking
rust-lang/rust/pull/71688

added MIR constant propagation of Scalars into function call arguments
rust-lang/rust/pull/71697

Miri: unleash all feature gates
rust-lang/rust/pull/71631

use existing framework for backward dataflow analyses
rust-lang/rust/pull/71006

add Read/Write::can_read/write_vectored
rust-lang/rust/pull/67841

add RefCell::take
rust-lang/rust/pull/71398

slice::fill: use T instead of generic arg
rust-lang/rust/pull/71165

Vec drop and truncate: drop using raw slice *mut [T]
rust-lang/rust/pull/71148

hashbrown: mark RawTable::par_iter unsafe
rust-lang/hashbrown/pull/157
News

Async interviews: my take thus far
smallcultfollowing.com

Multi-threaded HTTP/WebSocket server in Rust.
sergey-melnychuk.github.io

Cheating Rank-n with Traits
leshow.github.io

Understanding Memory and Thread Safety Practices
and Issues in Real-World Rust Programs
cseweb.ucsd.edu

A beginners guide to gRPC with Rust
dev.to

Setup Anaconda, Jupyter, and Rust
shahinrostami.com

Teleforking a process onto a different computer!
thume.ca

Stubbing out WASI manually in Rust
www.jakubkonka.com

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

IntelliJ Rust changelog #121
intellij-rust.github.io

Type-level programming in Rust
willcrichton.net

Rust at FullStory, Part 2: A Look Inside Our Mobile SDK
bionic.fullstory.com

Notes on Parsing in Rust
blog.wesleyac.com

Create a blazingly fast REST API in Rust (Part 1/2)
docs.qovery.com

The Safety Boat: Kubernetes and Rust
msrc-blog.microsoft.com

From Pratt to Dijkstra
matklad.github.io

Learning embedded Rust by building RISC-V-powered robot - Part 4
k155la3.blog

How to write CRaP Rust Code
blog.logrocket.com

Rust concurrency: a streaming workflow, served with a side of back-pressure.
medium.com/@polyglot_factotum

Writing a Python module in Rust using PyO3
kushaldas.in

Creating a Robust, Reusable Link-Checker
adventures.michaelfbryan.com

[video] Crust of Rust: Declarative Macros
www.youtube.com

[video] Rust Stream: String it All Together!
www.youtube.com

[video] Educational Rust live coding - Building a git CLI
www.youtube.com

[video] Maximum Sum of Subarrays (Leetcode) in Rust
www.youtube.com

[video] WASM + Rust
www.youtube.com

[video] Concurrency in Rust with Async/Await
www.youtube.com

[video] Rust and Tell Berlin Meetup - April 2020 [video]
www.youtube.com

[video] Rust Zürisee, April: cargo crev and cargo audit
www.youtube.com
Crate of the week: winrt

This week's crate is winrt, Microsoft's Rust/WinRT language projection.
Updates from core

Define UB in float-to-int casts to saturate
rust-lang/rust/pull/71269

Improve bitcode generation for Apple platforms
rust-lang/rust/pull/71970

Don't force rustc to do codegen for LTO builds
rust-lang/cargo/pull/8192

Correctly handle UEFI targets as Windows-like when emitting sections for LLVM bitcode
rust-lang/rust/pull/71881

Prevent compiler stack overflow for deeply recursive code
rust-lang/rust/pull/55617

resolve: Relax fresh binding disambiguation slightly to fix regression
rust-lang/rust/pull/71846

upgrade chalk and use chalk-solve/chalk-ir/chalk-rust-ir
rust-lang/rust/pull/69406

Report cannot move errors in promoted MIR
rust-lang/rust/pull/71587

Simplify the tcx.alloc_map API
rust-lang/rust/pull/71508

Suggest removing semicolon in last expression only if it's type is known
rust-lang/rust/pull/71894

Skip attempting to run coerce_unsized on an inference variable
rust-lang/rust/pull/69530

Unify the undo log of all snapshot types
rust-lang/rust/pull/69464

Reduce TypedArena creations in check_match
rust-lang/rust/pull/71975

Shrink LocalDecl
rust-lang/rust/pull/71942

Add remove_current_as_list to LinkedList's CursorMut
rust-lang/rust/pull/71878

Add Arc::{incr, decr}_strong_count
rust-lang/rust/pull/70733

Add Option to Force Unwind Tables
rust-lang/rust/pull/69984

Make BTreeMap::new and BTreeSet::new const
rust-lang/rust/pull/71839

Btreemap iter intertwined
rust-lang/rust/pull/71510

Add core::future::{pending, ready}
rust-lang/rust/pull/70834

futures: Refactor to reduce the amount of unsafe and duplicated code
rust-lang/futures-rs/pull/2128

cargo: Update assertions in LTO calculations
rust-lang/cargo/pull/8226

cargo: Try to remove secrets from http.debug
rust-lang/cargo/pull/8222

cargo features: allow activated_features_unverified to communicate not-present
rust-lang/cargo/pull/8194
News

Announcing Rust 1.43.1
blog.rust-lang.org

Rust concurrency: the single-writer principle.
medium.com/@polyglot_factotum

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

A no_std Rust binary
fasterthanli.me

Notes on io_uring
boats.gitlab.io

no_std async/await - soon on stable
ferrous-systems.com

"try fn" without special-casing Result
dev.to

time_it: A case study in Rust macros
notes.iveselov.info

Dynamic stylesheets and Yew
conradludgate.com

A practical introduction to async programming in Rust
jamesmcm.github.io

Rust Closures in FFI
adventures.michaelfbryan.com

Collecting many errors from an iterator of Results.
tarquin-the-brave.github.io

Auto-currying Rust Functions
peppe.rs

Converting bits to integers in Rust using generics
dev.to

Magnifying Glasses for Rust Assembly
www.justanotherdot.com

More Rust and Load Balancer Adventures
medium.com/@bparli

Porting North Korean Dictionaries with Rust
digitalnk.com

Rust verification tools
alastairreid.github.io

Series Announcement - Zero to Production in Rust
www.lpalmieri.com

What I Learned Contributing to Rust-Analyzer
dev.to

What’s the difference between a Rust char and a Go rune?
www.christianfscott.com

Writing A Wayland Compositor In Rust
wiki.alopex.li

Yak shaving conditional compilation in Rust
bitshifter.github.io

Oxidize Global Workshop and CfP announcement
ferrous-systems.com

Collecting many errors from an iterator of Results.
tarquin-the-brave.github.io

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

Rust FFI - Building an ASN1 codec
sjames.github.io

[video] Building a simple GraphQL API with Actix and Juniper
youtu.be

[video] Named Field Init in C, C++20, Zig, Rust, & D
www.youtube.com
Crate of the week: cargo-workspaces

This week's crate is cargo-workspaces, a cargo subcommand to manage your cargo workspace.
Updates from core

add built in PSP target
rust-lang/rust/pull/72062

emit a warning when optimization fuel runs out
rust-lang/rust/pull/72067

literal error reporting cleanup
rust-lang/rust/pull/72047

incomplete features can also be unsound
rust-lang/rust/pull/72045

be less aggressive with DroplessArena/TypedArena growth
rust-lang/rust/pull/71872

provide separate option for std debug asserts
rust-lang/rust/pull/72146

rework the std::iter::Step trait
rust-lang/rust/pull/69659

simpler slice Iterator methods
rust-lang/rust/pull/72166

make RawVec::grow mostly non-generic
rust-lang/rust/pull/72013

implement FromStr for OsString
rust-lang/rust/pull/71662

make offset must_use
rust-lang/rust/pull/72143

cargo: ignore broken console output in some situations
rust-lang/cargo/pull/8236

cargo: handle LTO with an rlib/cdylib crate type
rust-lang/cargo/pull/8254

cargo: gracefully handle errors during a build
rust-lang/cargo/pull/8247
News

Five Years of Rust
blog.rust-lang.org

Structuring and handling errors in 2020
nick.groenen.me

Taking Advantage of Auto-Vectorization in Rust
nickwilcox.github.io

State of Web Routing in Rust
pksunkara.com

Rust releases for single and multiple targets with GitHub Actions
mateuscosta.me

Getting Started With Rust By Building A Tiny Markdown Compiler
jesselawson.org

Parcel and Rust: A WASM Romcom
dev.to

Reading temperature sensor in Rust using Raspberry Pi GPIO
dev.to

Rust Analyzer - Next Few Years
rust-analyzer.github.io

Rust Closures in FFI
adventures.michaelfbryan.com

The case for using Rust for Automotive Software
medium.com/@sojan.james

Gamedev #4: Benefits of full-stack Rust
www.jakobmeier.ch

RISC-V OS using Rust Chapter 9: Block IO
osblog.stephenmarz.com

A Guide to Global Data in Rust
paulkernfeld/global-data-in-rust

[audio] What's New in Rust 1.42 and 1.43
rustacean-station.org

[video] Jonathan Teaches Jason Rust!
www.youtube.com

[video] Educational Rust coding - Building a web app
www.twitch.tv

[video] Rust and C++ Cardiff Virtual Meetup
www.youtube.com
Crate of the week: apply

This week's crate is apply, a tiny library for chaining free functions into method call chains.
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.