Decrusting the tracing crate
In this stream, we peel back the crust on the tracing crate — https://github.com/tokio-rs/tracing/ — and explore its interface, structure, and mechanisms. We talk about spans, events, their attributes and fields, and how to think about them in async code. We also dig into into what subscribers are, how they pick up events, and how you can construct your own subscribers through the layer abstraction. For more details about tracing, see https://docs.rs/tracing/latest/tracing/. 0:00:00 Introduction 0:03:00 Spans and events 0:38:56 Spans across thread boundaries 0:45:30 Spans in async context 1:02:20 Making format subscriber print span enter/exits 1:06:14 Compatibility with log 1:12:39 Event and span targets 1:20:51 The Subscriber trait 1:45:05 tracing-subscriber and the fmt subscriber 1:49:31 Blocking in Subscribers 1:54:50 The Layer abstraction 2:12:00 Dispatch 2:13:45 Per-layer filtering 2:33:34 Changing subscriber during runtime 2:41:59 Getting from the current subscriber to a layer 2:45:16 Do subscribers have layers? 2:47:06 Choosing logging levels 2:49:07 tracing for logging vs debugging 2:49:57 Moving from console logging to TUI logging at runtime 2:52:09 Other tracing-related crates Live version with chat: https://youtube.com/live/2tm2zH-ECVw

May 2024 Q&A

Decrusting the tokio crate

Decrusting the serde crate

Implementing a Lox interpreter in Rust

Async Rust explained in 20 minutes

A Practical Guide to Async IO in Zig

Jon Gjengset on Rust Internals, Vibe Coding, and Teaching by Streaming

Decrusting the quickcheck crate

Impl Trait aka Look ma’, no generics! by Jon Gjengset

"Type-Driven API Design in Rust" by Will Crichton

The Builder Pattern and Typestate Programming - Stefan Baumgartner - Rust Linz January 2023

Crust of Rust: Declarative Macros

Two Ways To Do Dynamic Dispatch

The Cost of Concurrency Coordination with Jon Gjengset

Rust Data Modelling Without Classes

Keynote | Actors with Tokio – a lesson in ownership - Alice Ryhl

From Zero to Async in Embedded Rust

Vibe coding complex changes in Rust

