{
 "id": "rust",
 "name": "Rust",
 "url": "https://dev-news.anonyfox.com/rust/",
 "site": "https://www.rust-lang.org",
 "ecosystem": "rust",
 "title": "Rust release history and what changed since 2024",
 "description": "Every Rust release since January 2024 from the rust-lang/rust GitHub releases, and what happened to the Rust stories dev-news covered back then.",
 "lede": {
  "date": "2026-10-24",
  "paragraphs": [
   "Rust 1.99.0 shipped on 1 October 2026. It is the 24th minor release since 1.76.0 in February 2024, and all 23 gaps between them were exactly 42 days. If the train keeps time, 1.100.0 arrives on 12 November.",
   "The surprises are in the 12 point releases. The latest, 1.99.1 on 16 October, fixed a miscompilation of FFI functions returning bool on x86_64. It also fixed rust-lld on macOS, 13 months after rust-lld became the default linker on x86_64 Linux."
  ]
 },
 "latest": {
  "version": "1.99.1",
  "date": "2026-10-16",
  "url": "https://github.com/rust-lang/rust/releases/tag/1.99.1",
  "summary": "library: fix missing symbol wcslen on UEFI and embedded targets"
 },
 "stable_releases_since_2024": 36,
 "prereleases_since_2024": 0,
 "releases": [
  {
   "version": "1.99.1",
   "date": "2026-10-16",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.99.1",
   "summary": "library: fix missing symbol wcslen on UEFI and embedded targets"
  },
  {
   "version": "1.99.0",
   "date": "2026-10-01",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.99.0",
   "summary": "Add allow-by-default rawborrowsviareferences lint that checks for references that decay immediately into raw borrows"
  },
  {
   "version": "1.98.1",
   "date": "2026-09-03",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.98.1",
   "summary": "rustc: fix miscompilation in generating vtables"
  },
  {
   "version": "1.98.0",
   "date": "2026-08-20",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.98.0",
   "summary": "Allow shortening lifetime of &mut when unsize-coercing, even in an invariant position. For example, you can now coerce a Cell<&'long mut i32> to a…"
  },
  {
   "version": "1.97.1",
   "date": "2026-07-16",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.97.1",
   "summary": "rustc: Fix miscompilation in LLVM optimization This backports an LLVM submodule bump to include the LLVM-side fix and a revert of the rustc change that is…"
  },
  {
   "version": "1.97.0",
   "date": "2026-07-09",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.97.0",
   "summary": "Consider Result<T, Uninhabited> and ControlFlow<Uninhabited, T> to be equivalent to T for must use lint"
  },
  {
   "version": "1.96.1",
   "date": "2026-07-05",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.96.1",
   "summary": "Cargo: fix timeout/retry behavior"
  },
  {
   "version": "1.96.0",
   "date": "2026-05-28",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.96.0",
   "summary": "Allow passing expr metavariable to cfg"
  },
  {
   "version": "1.95.0",
   "date": "2026-04-16",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.95.0",
   "summary": "Stabilize if let guards on match arms"
  },
  {
   "version": "1.94.1",
   "date": "2026-03-26",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.94.1",
   "summary": "Fix std::thread::spawn on wasm32-wasip1-threads"
  },
  {
   "version": "1.94.0",
   "date": "2026-03-05",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.94.0",
   "summary": "Impls and impl items inherit deadcode lint level of the corresponding traits and trait items"
  },
  {
   "version": "1.93.1",
   "date": "2026-02-12",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.93.1",
   "summary": "Don't try to recover keyword as non-keyword identifier, fixing an ICE that especially affected rustfmt."
  },
  {
   "version": "1.93.0",
   "date": "2026-01-22",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.93.0",
   "summary": "Stabilize several s390x vector-related target features and the iss390xfeaturedetected! macro"
  },
  {
   "version": "1.92.0",
   "date": "2025-12-11",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.92.0",
   "summary": "Document MaybeUninit representation and validity"
  },
  {
   "version": "1.91.1",
   "date": "2025-11-10",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.91.1",
   "summary": "Enable file locking support in illumos. This fixes Cargo not locking the build directory on illumos."
  },
  {
   "version": "1.91.0",
   "date": "2025-10-30",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.91.0",
   "summary": "Lower pattern bindings in the order they're written and base drop order on primary bindings' order"
  },
  {
   "version": "1.90.0",
   "date": "2025-09-18",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.90.0",
   "summary": "Split up the unknownormalformeddiagnosticattributes lint. This lint has been split up into four finer-grained lints, with…"
  },
  {
   "version": "1.89.0",
   "date": "2025-08-07",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.89.0",
   "summary": "Stabilize explicitly inferred const arguments (feature(genericarginfer))"
  },
  {
   "version": "1.88.0",
   "date": "2025-06-26",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.88.0",
   "summary": "[Stabilize #![feature(letchains)] in the 2024 edition.](https://github.com/rust-lang/rust/pull/132833) This feature allows &&-chaining let statements inside…"
  },
  {
   "version": "1.87.0",
   "date": "2025-05-15",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.87.0",
   "summary": "Stabilize asmgoto feature"
  },
  {
   "version": "1.86.0",
   "date": "2025-04-03",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.86.0",
   "summary": "Stabilize upcasting trait objects to supertraits."
  },
  {
   "version": "1.85.1",
   "date": "2025-03-23",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.85.1",
   "summary": "Fix the doctest-merging feature of the 2024 Edition."
  },
  {
   "version": "1.85.0",
   "date": "2025-02-20",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.85.0",
   "summary": "The 2024 Edition is now stable. See the edition guide for more details."
  },
  {
   "version": "1.84.1",
   "date": "2025-01-31",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.84.1",
   "summary": "Fix ICE 132920 in duplicate-crate diagnostics."
  },
  {
   "version": "1.84.0",
   "date": "2025-01-09",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.84.0",
   "summary": "[Allow #[deny] inside #[forbid] as a no-op](https://github.com/rust-lang/rust/pull/121560/)"
  },
  {
   "version": "1.83.0",
   "date": "2024-11-28",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.83.0",
   "summary": "Stabilize &mut, mut, &Cell, and const Cell in const."
  },
  {
   "version": "1.82.0",
   "date": "2024-10-17",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.82.0",
   "summary": "Don't make statement nonterminals match pattern nonterminals"
  },
  {
   "version": "1.81.0",
   "date": "2024-09-05",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.81.0",
   "summary": "Abort on uncaught panics in extern \"C\" functions."
  },
  {
   "version": "1.80.1",
   "date": "2024-09-05",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.80.1",
   "summary": "Fix miscompilation in the jump threading MIR optimization when comparing floats"
  },
  {
   "version": "1.80.0",
   "date": "2024-07-25",
   "url": "https://github.com/rust-lang/rust/releases/tag/1.80.0",
   "summary": "Document maximum allocation size"
  }
 ],
 "log": [
  {
   "date": "2026-10-21",
   "title": "Google's Rust Style Guide",
   "text": "389 points and 256 comments on Hacker News.",
   "url": "https://dev-news.anonyfox.com/log/2026-10-21/#rust-5",
   "sources": [
    {
     "label": "guide",
     "url": "https://google.github.io/styleguide/rustguide.html"
    },
    {
     "label": "HN",
     "url": "https://news.ycombinator.com/item?id=50186010"
    }
   ]
  }
 ],
 "then": [
  {
   "date": "2024-03-22",
   "title": "The 2024 Edition update",
   "source": "https://blog.rust-lang.org/inside-rust/2024/03/22/2024-edition-update.html",
   "old_url": "https://dev-news.anonyfox.com/articles/2024-edition-update-on-rust-development",
   "next": [
    "The 2024 Edition went stable in 1.85.0 on 20 February 2025. A month later 1.85.1 had to fix the edition's doctest merging.",
    "let chains followed in 1.88.0 on 26 June 2025, and only for code on the 2024 edition."
   ]
  },
  {
   "date": "2024-04-09",
   "title": "CVE-2024-24576 in std::process::Command on Windows",
   "source": "https://blog.rust-lang.org/2024/04/09/cve-2024-24576.html",
   "old_url": "https://dev-news.anonyfox.com/articles/rust-standard-library-security-advisory-cve-2024-24576",
   "next": [
    "1.77.2 shipped the fix the same day. On 4 September 2024 the project announced CVE-2024-43402: batch file arguments still were not escaped when the file name ended in whitespace or periods. 1.81.0 closed it the next day.",
    "So the fix needed its own CVE, five months later."
   ]
  },
  {
   "date": "2024-05-17",
   "title": "rust-lld on nightly Linux",
   "source": "https://blog.rust-lang.org/2024/05/17/enabling-rust-lld-on-linux.html",
   "old_url": "https://dev-news.anonyfox.com/articles/boost-linking-speeds-on-linux-with-rust-lld-in-rust-nightly-builds",
   "next": [
    "Stable took 16 months. 1.90.0 on 18 September 2025 made lld the default on x86_64-unknown-linux-gnu.",
    "rust-lld still gets fixes in point releases. 1.99.1 added a missing rpath for libLLVM on macOS."
   ]
  },
  {
   "date": "2024-08-09",
   "title": "Async closures need testing",
   "source": "https://blog.rust-lang.org/inside-rust/2024/08/09/async-closures-call-for-testing.html",
   "old_url": "https://dev-news.anonyfox.com/articles/testing-needed-for-async-closures-in-rust-rfc-3668-update",
   "next": [
    "Async closures were stabilized in 1.85.0 on 20 February 2025, in the same release as the 2024 Edition."
   ]
  },
  {
   "date": "2024-09-05",
   "title": "wasm32-wasip2 moves to tier 2",
   "source": "https://blog.rust-lang.org/2024/09/05/wasip2-tier-2.html",
   "old_url": "https://dev-news.anonyfox.com/articles/rust-blog-wasm32-wasip2-target-upgraded-to-tier-2-support",
   "next": [
    "The promotion shipped in 1.82.0 on 17 October 2024. In 1.93.1 on 12 February 2026 a revert fixed file descriptor leaks on wasm32-wasip2."
   ]
  }
 ],
 "coverage": {
  "ok": true,
  "expected": 36,
  "present": 36,
  "checked_at": "2026-10-24T17:23:21.434Z",
  "since": "2024-01-01T00:00:00.000Z"
 },
 "sources": {
  "releases": {
   "type": "github",
   "repo": "rust-lang/rust",
   "tag_filter": "^\\d+\\.\\d+\\.\\d+$"
  },
  "feed": "https://blog.rust-lang.org/feed.xml"
 },
 "feed": "https://dev-news.anonyfox.com/rust/feed.xml",
 "markdown": "https://dev-news.anonyfox.com/rust.md"
}
