<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel><title>Rust — Trust is earned, not given</title><link>https://www.bobhuang.com/series/rust/</link><description>Rust from the borrow checker outward: ownership and the cost model that replaces a garbage collector, errors a caller can act on, iterators, traits and dispatch, lifetimes, async and Send/Sync, Cargo as a build system, the FFI boundary, serde, edition 2024, and where the language stands today.</description><language>en</language><lastBuildDate>15 Sep 2026 12:00:00 GMT</lastBuildDate><atom:link href="https://www.bobhuang.com/series/rust/feed.xml" rel="self" type="application/rss+xml"/><item><title>Rust, part 15: the state of Rust today — 1.98, the supply chain, and the borrow checker's next act</title><link>https://www.bobhuang.com/blog/1044/rust-state-of-rust-2026/</link><guid>https://www.bobhuang.com/blog/1044/rust-state-of-rust-2026/</guid><pubDate>15 Sep 2026 12:00:00 GMT</pubDate><description>The stable compiler is at 1.98 as this is written, with the 2024 edition a year and a half behind us. The interesting questions in 2026 are no longer "is Rust…</description></item><item><title>Rust, part 14: the 2025 releases — let chains, 1.9x, and a year of small wins</title><link>https://www.bobhuang.com/blog/1043/rust-2025-releases-let-chains/</link><guid>https://www.bobhuang.com/blog/1043/rust-2025-releases-let-chains/</guid><pubDate>24 Feb 2026 12:00:00 GMT</pubDate><description>Between the 2024 edition in February 2025 and the start of 2026, Rust shipped roughly ten releases. None was a headline event; together they removed a category…</description></item><item><title>Rust, part 13: Rust 1.85, edition 2024, and async closures</title><link>https://www.bobhuang.com/blog/1042/rust-1-85-edition-2024/</link><guid>https://www.bobhuang.com/blog/1042/rust-1-85-edition-2024/</guid><pubDate>13 May 2025 12:00:00 GMT</pubDate><description>February 2025 brought two things at once: Rust 1.85 and the 2024 edition. The edition is the more interesting half, because it is the mechanism that lets the…</description></item><item><title>Rust, part 12: serde and the derive ecosystem</title><link>https://www.bobhuang.com/blog/1041/rust-serde-derive-ecosystem/</link><guid>https://www.bobhuang.com/blog/1041/rust-serde-derive-ecosystem/</guid><pubDate>21 Jan 2025 12:00:00 GMT</pubDate><description>The first non-negotiable dependency in most Rust projects is serde, and it is worth understanding rather than copying from a template — because its attributes…</description></item><item><title>Rust, part 11: unsafe, FFI, and the boundary to C</title><link>https://www.bobhuang.com/blog/1040/rust-unsafe-ffi-boundary/</link><guid>https://www.bobhuang.com/blog/1040/rust-unsafe-ffi-boundary/</guid><pubDate>08 Oct 2024 12:00:00 GMT</pubDate><description>unsafe is not "turn off the checks" and it is not a mode you enter. It is a marker on five specific capabilities, and everything else in the language keeps…</description></item><item><title>Rust, part 10: Cargo as a build system — features, profiles, workspaces, cross-compilation</title><link>https://www.bobhuang.com/blog/1039/rust-cargo-build-system/</link><guid>https://www.bobhuang.com/blog/1039/rust-cargo-build-system/</guid><pubDate>25 Jun 2024 12:00:00 GMT</pubDate><description>In most ecosystems the build tool is an afterthought you learn the three commands of. In Rust, Cargo is closer to part of the language, and a surprising amount…</description></item><item><title>Rust, part 9: Send, Sync, and the future that isn't Send</title><link>https://www.bobhuang.com/blog/1038/rust-send-sync-across-await/</link><guid>https://www.bobhuang.com/blog/1038/rust-send-sync-across-await/</guid><pubDate>19 Mar 2024 12:00:00 GMT</pubDate><description>There is one compiler error in async Rust that everyone meets and few can explain the first time: future cannot be sent between threads safely, pointing at an…</description></item><item><title>Rust, part 8: async fn in traits arrives (1.75), and what four years of workarounds cost</title><link>https://www.bobhuang.com/blog/1037/rust-async-fn-in-traits/</link><guid>https://www.bobhuang.com/blog/1037/rust-async-fn-in-traits/</guid><pubDate>12 Dec 2023 12:00:00 GMT</pubDate><description>The most-requested Rust feature of its era was one line of syntax: an async fn inside a trait. It stabilised in Rust 1.75 (December 2023) after roughly four…</description></item><item><title>Rust, part 7: async Rust — futures, executors, and why there is no runtime in std</title><link>https://www.bobhuang.com/blog/1036/rust-async-futures-executors/</link><guid>https://www.bobhuang.com/blog/1036/rust-async-futures-executors/</guid><pubDate>26 Sep 2023 12:00:00 GMT</pubDate><description>Rust's async is the part that most surprises people coming from JavaScript or C#: there is no runtime in the standard library. async fn is in the language; the…</description></item><item><title>Rust, part 6: lifetimes without the fear</title><link>https://www.bobhuang.com/blog/1035/rust-lifetimes/</link><guid>https://www.bobhuang.com/blog/1035/rust-lifetimes/</guid><pubDate>20 Jun 2023 12:00:00 GMT</pubDate><description>Lifetimes have a reputation far beyond their difficulty, for a reason that is worth naming: most of the time they are invisible. You write them when the…</description></item><item><title>Rust, part 5: traits, generics and monomorphization — static versus dynamic dispatch</title><link>https://www.bobhuang.com/blog/1034/rust-traits-generics-dispatch/</link><guid>https://www.bobhuang.com/blog/1034/rust-traits-generics-dispatch/</guid><pubDate>07 Mar 2023 12:00:00 GMT</pubDate><description>Rust's generics look like C++ templates and its traits look like Haskell type classes, but the question that decides your program's shape is the one C++ and…</description></item><item><title>Rust, part 4: Rust lands in the Linux kernel</title><link>https://www.bobhuang.com/blog/1033/rust-in-the-linux-kernel/</link><guid>https://www.bobhuang.com/blog/1033/rust-in-the-linux-kernel/</guid><pubDate>13 Dec 2022 12:00:00 GMT</pubDate><description>In December 2022, Linux 6.1 shipped the first Rust code in the kernel tree. It is easy to file that under "historical curiosity" and it would be a mistake: the…</description></item><item><title>Rust, part 3: iterators, closures, and what "zero-cost" really means</title><link>https://www.bobhuang.com/blog/1032/rust-iterators-zero-cost/</link><guid>https://www.bobhuang.com/blog/1032/rust-iterators-zero-cost/</guid><pubDate>27 Sep 2022 12:00:00 GMT</pubDate><description>"Zero-cost abstraction" is the phrase people quote and rarely test. For iterators it is literally measurable: a chain of filter and map compiles to the same…</description></item><item><title>Rust, part 2: Result, the ? operator, and errors a caller can act on</title><link>https://www.bobhuang.com/blog/1031/rust-result-error-handling/</link><guid>https://www.bobhuang.com/blog/1031/rust-result-error-handling/</guid><pubDate>14 Jun 2022 12:00:00 GMT</pubDate><description>Rust has no exceptions. It has a type, Result&lt;T, E&gt;, and an operator, ?, and the pair are why the language's error handling is the part other ecosystems keep…</description></item><item><title>Rust, part 1: ownership, borrowing, and the cost model that replaces a GC</title><link>https://www.bobhuang.com/blog/1030/rust-ownership-borrowing/</link><guid>https://www.bobhuang.com/blog/1030/rust-ownership-borrowing/</guid><pubDate>15 Mar 2022 12:00:00 GMT</pubDate><description>Every language makes you pay for memory management somewhere. Rust's wager is that you can pay at compile time instead of at runtime, and the price is a rule…</description></item></channel></rss>