pub ThisWeekInRust {} – Telegram
pub ThisWeekInRust {}
991 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
News

gfx-rs: 5 year anniversary.
gfx-rs.github.io

Green threads explained in 200 lines of Rust.
cfsamson.gitbook.io

Facebook's new cryptocurrency Libra uses Rust.
developers.libra.org

Vimeo introduces support for AV1 using rav1e, a Rust library.
press.vimeo.com

Amethyst v0.11.0 released, now supporting gfx-hal with Rendy.
amethyst.rs

Bzip2 in Rust: porting the randomization table.
people.gnome.org

Building secure systems using RISC-V and Rust.
content.riscv.org
Crate of the week: safe

This week's crate is safe, a #[safe] attribute for explaining why unsafe { ... } is OK. Thanks to Michael-F-Bryan for the suggestion!
Updates from core

Introduce Let(..) in AST, remove IfLet + WhileLet and parse let chains
rust-lang/rust/pull/60861

Support cfg and cfg_attr on generic parameters
rust-lang/rust/pull/61547

librustc_data_structures: Speedup union of sparse and dense hybrid set
rust-lang/rust/pull/61020

Refactor miri pointer checks
rust-lang/rust/pull/62081

Help LLVM better optimize slice::Iter(Mut)::len
rust-lang/rust/pull/61885

Remove the default type of Rem::Output
rust-lang/rust/pull/61874

Make use of ptr::null(_mut) instead of casting zero
rust-lang/rust/pull/61864

Make MaybeUninit #[repr(transparent)]
rust-lang/rust/pull/61802

Implement nth_back for slice::{Iter, IterMut}
rust-lang/rust/pull/60772

Add custom nth_back to Skip
rust-lang/rust/pull/60454

Add functions for building raw slices to libcore
rust-lang/rust/pull/60667

rustdoc: Only show methods that appear in impl blocks in the Implementors sections of trait doc pages
rust-lang/rust/pull/61505

rustdoc: Generate implementors for all auto traits
rust-lang/rust/pull/60293
News

nom parser combinators 5.0 release: replace macros with functions, better errors.
unhandledexpression.com

The typestate pattern in Rust.
cliffle.com

Implementing ptrace for Redox OS - part 0.
www.redox-os.org

Let's build a JavaScript engine (in Rust).
2019.jsconf.eu

Real Time for the Masses (RTFM) goes multi-core.
blog.japaric.io

Rust streams.
blog.yoshuawuyts.com

Rust on the ESP32/ESP8266 and how to get started.
dentrassi.de

Rust for closed-source projects.
ntcore.com

swym: Are we lock-free yet?
mtak-blog.github.io
Crate of the week: winit

This week's crate is winit, a pure-rust cross-platform window initialization library. Thanks to Osspial for the suggestion!
Updates from core

Clean up query cache code
rust-lang/rust/pull/59722

Don't ICE on mutable zst slices
rust-lang/rust/pull/62094

syntax: Remove ast::Guard
rust-lang/rust/pull/62075

Always parse async unsafe fn + properly ban in 2015
rust-lang/rust/pull/62241

Call out explicitly that general read needs to be called with an initialized buffer
rust-lang/rust/pull/62102

Fix error counting
rust-lang/rust/pull/62055

Use ecx for const-prop local storage
rust-lang/rust/pull/62012

Fix HIR visit order
rust-lang/rust/pull/61572

Extend the #[must_use] lint to boxed types
rust-lang/rust/pull/62228

Extend the #[must_use] lint to arrays
rust-lang/rust/pull/62235

Clean up MIR drop generation
rust-lang/rust/pull/61872

Use a more efficient iteration order for backward dataflow
rust-lang/rust/pull/62063

Use a more efficient iteration order for forward dataflow
rust-lang/rust/pull/62062

save-analysis: Use buffered writes
rust-lang/rust/pull/62164

Remove FnBox
rust-lang/rust/pull/62043

rustdoc: Remove unused derives and variants
rust-lang/rust/pull/62224

rustdoc: Prevent panic when sysroot cannot be computed
rust-lang/rust/pull/61459

backtrace: More improvements to gimli support
rust-lang/backtrace-rs/pull/217

rustup: Switch to std::fs::read_to_string
rust-lang/rustup.rs/pull/1906
News

Writing an OS in Rust: Heap allocation.
os.phil-opp.com

Non-lexical lifetimes arrives for everyone.
blog.pnkfx.org

Status of rust-analyzer: Achievements and Open Collective.
ferrous-systems.com

TLS performance: rustls versus OpenSSL.
jbp.io

Optimizing jieba-rs to be 33% faster than cppjieba.
blog.paulme.ng

Brave improves its ad-blocker performance by 69x with new engine implementation in Rust.
brave.com

Writing a small ray tracer in Rust and Zig.
nelari.us

Compiling Rust apps for Termux with nix-shell.
blog.geemili.xyz

Building crates so they look like C(ABI) libraries.
dev.to
Crate of the week: aljabar

This week's crate is aljabar, an extremely generic linear algebra libary. Thanks to Vikrant for the suggestion!
Updates from core

Stabilize support for Profile-guided Optimization (Hooray!)
rust-lang/rust/pull/61268

Break out of the correct number of scopes in loops
rust-lang/rust/pull/62388

Improve error span for async type inference error
rust-lang/rust/pull/62383

Remove hir::ExprKind::While
rust-lang/rust/pull/61988

Generalize impl trait to permit multiple lifetime bounds
rust-lang/rust/pull/61775

Support stability and deprecation checking for all macros
rust-lang/rust/pull/62042

Implement Option::contains and Result::contains
rust-lang/rust/pull/62356

implement Iterator::last via DoubleEndedIterator::next_back for some libcore types
rust-lang/rust/pull/62316

Add Vec::leak
rust-lang/rust/pull/62196

Implement mem::{zeroed, uninitialized} in terms of MaybeUninit
rust-lang/rust/pull/62150

nth_back for chunks_exact
rust-lang/rust/pull/62064

Only call the closure parameter of Iterator::is_sorted_by_key once per item
rust-lang/rust/pull/62473
News

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

Async-await status report #2.
smallcultfollowing.com

Writing an OS in Rust: Updates in June 2019.
os.phil-opp.com

Method for emulating higher-kinded types in Rust.
https://gist.github.com/edmundsmith/855fcf0cb35dd467c29a9350481f0ecf

Speedy desktop apps with GTK and Rust.
nora.codes

Build a decentralized chat using JavaScript & Rust (WebAssembly).
medium.com/perlin-network

Safer, simpler embedded Rust with Apache Mynewt.
medium.com/@ly.lee
Crate of the week: Rustexp

This week's CotW is not a crate but Rustexp site, a Rust regular expression editor & tester.
Thanks to carols10cents for the suggestion!
Updates from core

Use const generics for array impls [part 1]
rust-lang/rust/pull/62435

Update to LLVM 9 (ongoing work)
rust-lang/llvm-project/pull/19

Update LLVM: apply patch necessary for ThinLTO on RISC-V
rust-lang/rust/pull/62463

Use visitor for #[structural_match] check
rust-lang/rust/pull/62339

Normalize projections appearing in impl Trait
rust-lang/rust/pull/62221

typeck: Merge opaque type inference logic
rust-lang/rust/pull/62090

Fact generation for liveness calculations in Polonius
rust-lang/rust/pull/60266

Add key and value methods to DebugMap
rust-lang/rust/pull/60458

Add an AtomicCell abstraction
rust-lang/rust/pull/62577

Add messages to Option's and Result's must_use annotation for is_*
rust-lang/rust/pull/62431

Prevent Vec::drain_filter from double dropping on panic
rust-lang/rust/pull/61224

Add impl<T> FromIterator<T> for Arc/Rc<[T]>
rust-lang/rust/pull/61953

Add Iterator::partition_in_place() and is_partitioned()
rust-lang/rust/pull/62278

Use fold in Iterator::last default implementation
rust-lang/rust/pull/62481

rustc guide: Add humor appendix
rust-lang/rustc-guide/pull/350
News

Microsoft Security Response Center endorses the use of Rust for safe systems programming.
msrc-blog.microsoft.com

How to speed up the Rust compiler in 2019.
blog.mozilla.org

"What the hardware does" is not what your program does: Uninitialized memory.
www.reddit.com

What is Rust's unsafe?
nora.codes

AiC: Unbounded queues and lang design.
smallcultfollowing.com

Creating a simple LISP in Rust.
willspeak.me

Announcing Rustacean Station and Rust 1.36.
rustacean-station.org

Rust as the new C. Part 1: building and combining native libs into C API.
hotforknowledge.com

New tools for 2D game development.
amethyst.rs

Fullstack Rust with Yew.
www.steadylearner.com

gfx-rs Javelin project kick-off.
gfx-rs.github.io

Visual programming in embedded Rust with Apache Mynewt and Google Blockly.
medium.com/@ly.lee

Stream combinators implemented using for await syntax.
www.reddit.com

Ferrous Systems: Rust Summer Classes in Berlin.
ferrous-systems.com

Tickets are now available RustFest Barcelona - 9-12 November 2019.
blog.rustfest.eu
Crate of the week: overloadable

This week's crate is overloadable, a crate to provides you with the capabilities to overload your functions in a similar style to C# or C++, including support for meta attributes, type parameters and constraints, and visibility modifiers
Thanks to Stevensonmt for the suggestion!
Updates from core

The essence of lexer
rust-lang/rust/pull/59706

Implement RFC #2203
rust-lang/rust/pull/61749

Add meta-variable checks in macro definitions
rust-lang/rust/pull/62008

Stabilize <*mut _>::cast and <*const _>::cast
rust-lang/rust/pull/62713

Specific error for positional args after named args in format!()
rust-lang/rust/pull/62710

rustc_typeck: Improve diagnostics for -> _ fn return type
rust-lang/rust/pull/62694

Add info about undefined behavior to as_ref suggestions
rust-lang/rust/pull/62685

resolve: Improve candidate search for unresolved macro suggestions
rust-lang/rust/pull/62684

miri validation: Better error messages for dangling references
rust-lang/rust/pull/62673

Cancel unemitted diagnostics during error recovery
rust-lang/rust/pull/62666

Make VaListImpl<'f> invariant over 'f
rust-lang/rust/pull/62639

Add Option::expect_none(msg) and unwrap_none()
rust-lang/rust/pull/62596

stdarch: Add ARM Neon vmvn_/vmvnq_ bitwise not intrinsics
rust-lang/stdarch/pull/770

cargo: Add support for multiple --features options
rust-lang/cargo/pull/7084

cargo: Optimize runtime of #[cargo_test_macro]
rust-lang/cargo/pull/7146
News

U.S. House Committee on Financial Services hearing: Why was the Rust language chosen?
www.c-span.org

Microsoft Security Response Center: Why Rust for safe systems programming.
msrc-blog.microsoft.com

Compiler speed has improved 30-40% across the board year-to-date, with some projects seeing 45%+ improvements.
www.reddit.com

Perils of constructors.
matklad.github.io

Notes on a smaller Rust.
boats.gitlab.io

Announcing heim project.
svartalf.info

Gotham — from start to Heroku.
blog.codeship.com

How to write Full Stack Rust code.
www.steadylearner.com

HOWTO: Replace mem::uninitialized with mem::MaybeUninit.
www.reddit.com

Stream combinators implemented using for await syntax.
www.reddit.com

CLion Rust plugin adds a new experimental macro expansion engine.
www.jetbrains.com