{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Rust blog",
  "home_page_url": "https://blog.rust-lang.org/",
  "description": "Events collected by UnlimitedPipe 0.3.0",
  "_unlimitedpipe": {
    "schema": "unlimitedpipe.event/1",
    "generator": "UnlimitedPipe 0.3.0"
  },
  "items": [
    {
      "id": "9559d1c91928f8071f8e",
      "title": "Announcing a Maintainer in Residence: Scott Schafer for the Cargo team",
      "content_text": "At the end of August, we announced our first Maintainers in Residence, Rust Project contributors who are funded for their upstream contributions and maintenance work from the Rust Foundation Maintainers Fund (RFMF). Since then, the Rust Leadership Council has dedicated more funds from its Project Priorities budget to RFMF, and together with AWS also providing additional funds, this allowed us to open a new full-time Maintainer in Residence (MiR) position to support the Cargo team. We would like…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "9559d1c91928f8071f8e",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "Announcing a Maintainer in Residence: Scott Schafer for the Cargo team",
            "item_type": "entry",
            "summary": "added: Announcing a Maintainer in Residence: Scott Schafer for the Cargo team",
            "after": {
              "title": "Announcing a Maintainer in Residence: Scott Schafer for the Cargo team",
              "link": "https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/",
              "id": "https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/",
              "author": "Jakub Beránek",
              "published_at": "2026-09-22T00:00:00Z",
              "updated_at": "2026-09-22T00:00:00Z",
              "summary": "At the end of August, we announced our first Maintainers in Residence, Rust Project contributors who are funded for their upstream contributions and maintenance work from the Rust Foundation Maintainers Fund (RFMF). Since then, the Rust Leadership Council has dedicated more funds from its Project Priorities budget to RFMF, and together with AWS also providing additional funds, this allowed us to open a new full-time Maintainer in Residence (MiR) position to support the Cargo team. We would like to thank the Rust Leadership Council, AWS, and also the Rust Foundation for providing us with this opportunity! If you would like to help us hire more maintainers to improve Rust, consider donating to RFMF.\nThis post explains why we chose to support the Cargo team specifically, and introduces Scott Schafer , the new Cargo Maintainer in Residence.\nWhy Cargo?\nThe new MiR full-time position is dedicated to helping with the maintenance of Cargo , our build system and package manager. The Cargo project is deeply involved in many new Rust features, improvements, and Project Goals . Combined with its cross-cutting nature, where it has to support many different use-cases and integrate with several other tools, it takes a lot of work just to keep up with its maintenance needs, let alone support so many feature requests and proposed changes.\nBecause of that, the Cargo team has sometimes struggled with meeting its maintenance demands. You might remember that for several years, it actually held a feature freeze , to reduce Cargo's internal tech debt, perform necessary refactorings, go through the issue and pull request backlog, and come up with scalable internal development and design processes, so that they could eventually go back to even thinking about adding new features.\nRecently, some changes occurred within the team, which made it more difficult for them to meet their maintenance baseline. Some members of the team left, while others lost their dedicated funding for working on Carg",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/09/22/announcing-a-maintainer-in-residence-scott-schafer-for-the-cargo-team/"
    },
    {
      "id": "d3fd80b3c3486e325d1c",
      "title": "GitHub Actions leaking secrets when Miri output is cached",
      "content_text": "The Rust Security Response Team was notified that Miri stores all environment variables to target/ , allowing secrets to persist in caches.\nWhile not necessary a vulnerability in and of itself, when paired with GitHub Actions caching behavior, it is possible for this to expose secrets to PRs.\nOverview\nGitHub Actions makes it possible to cache directories between runs. Typical setups allow CI runs on main (and other branches) to write to cache, and PRs can only read from cache (preventing cache…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "d3fd80b3c3486e325d1c",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "GitHub Actions leaking secrets when Miri output is cached",
            "item_type": "entry",
            "summary": "added: GitHub Actions leaking secrets when Miri output is cached",
            "after": {
              "title": "GitHub Actions leaking secrets when Miri output is cached",
              "link": "https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/",
              "id": "https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/",
              "author": "Manish Goregaokar",
              "published_at": "2026-09-21T00:00:00Z",
              "updated_at": "2026-09-21T00:00:00Z",
              "summary": "The Rust Security Response Team was notified that Miri stores all environment variables to target/ , allowing secrets to persist in caches.\nWhile not necessary a vulnerability in and of itself, when paired with GitHub Actions caching behavior, it is possible for this to expose secrets to PRs.\nOverview\nGitHub Actions makes it possible to cache directories between runs. Typical setups allow CI runs on main (and other branches) to write to cache, and PRs can only read from cache (preventing cache poisoning). Rust projects tend to speed up CI by caching binaries built by cargo install and sometimes the contents of target/ .\nPR CI can be triggered by anyone who can open PRs on your repository. GitHub requires maintainer approval for the first PR, but future PRs will rerun CI on every push. Anyone who has previously landed a change can trigger a CI run extracting information from cached target/ and then cover their tracks by pushing a second commit to the PR.\nGitHub sometimes hides overwritten commits in its UI, making this kind of attack harder to detect. CI run logs and overwritten commits are also deleted after a few months.\nWhen cargo miri is invoked, Miri needs to retain build-relevant environment variables between runs 1 . The current code to do so achieves this by storing all environment variables to target/ . This, of course, persists when target/ is cached.\nIf your environment contained secrets, these can now be accessed by PRs via the cache.\nOur fix\nOur short term fix for this is to make Miri only preserve CARGO_* environment variables (excepting CARGO_*_TOKEN ) and OUT_DIR . In the longer term, Miri and cargo may figure out better ways to inform Miri of the relevant list of environment variables. Note that this patch may not be available on nightly yet.\nWe also performed an ecosystem scan of GitHub repositories and identified 1 repository with this issue and 7 repositories that do not appear to be vulnerable but should be cautious anyway. We have reached out to",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/09/21/github-actions-leaking-secrets-when-miri-output-is-cached/"
    },
    {
      "id": "d46093cad200139fd53f",
      "title": "Be alert: targeted attacks on prominent Rustaceans",
      "content_text": "We believe that there is an ongoing campaign targeting rust-lang members and\nowners of popular crates that is attempting to compromise devices and accounts\nin order to use them to publish malware.\nWhat we've seen\nA video call is set up for something positive — maybe for a job, maybe for a\nproject, maybe for a contract opportunity — and then that's used as a vector to\neither get the target to install something on their computer (such as a\npurportedly missing audio codec) or execute another…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "d46093cad200139fd53f",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/09/17/targeted-attacks/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "Be alert: targeted attacks on prominent Rustaceans",
            "item_type": "entry",
            "summary": "added: Be alert: targeted attacks on prominent Rustaceans",
            "after": {
              "title": "Be alert: targeted attacks on prominent Rustaceans",
              "link": "https://blog.rust-lang.org/2026/09/17/targeted-attacks/",
              "id": "https://blog.rust-lang.org/2026/09/17/targeted-attacks/",
              "author": "Adam Harvey",
              "published_at": "2026-09-17T00:00:00Z",
              "updated_at": "2026-09-17T00:00:00Z",
              "summary": "We believe that there is an ongoing campaign targeting rust-lang members and\nowners of popular crates that is attempting to compromise devices and accounts\nin order to use them to publish malware.\nWhat we've seen\nA video call is set up for something positive — maybe for a job, maybe for a\nproject, maybe for a contract opportunity — and then that's used as a vector to\neither get the target to install something on their computer (such as a\npurportedly missing audio codec) or execute another command (for example, via\nputting a command on the clipboard).\nThese attackers are setting up new but legitimate seeming company profiles,\nincluding plausible LinkedIn presences, in order to pass cursory inspection.\nA previous attack of this form targeted many prominent Rust developers in\nJune, and, last month, the arrayref crate was briefly compromised through similar\nattacks . At this moment we do not know if these are all a part of the same\ncampaign.\nThis attack style is known to be used by the DPRK , and has been seen outside of the Rust community as well .\nWhat you can do\nPlease take extra care in the near term. Be appropriately suspicious of cold\noutreaches, and ensure that any calls you have with new people are on platforms\nyou trust — ideally, try to be the one who sets up the call on a platform you\nalready use.\nPlease also re-check that your accounts look normal: MFA enabled,\nno unexpected logins on platforms that can track that, and so on.\nIf you have any concerns about your accounts, please reach out to\nhelp@crates.io (for crates.io account concerns) and/or\nsecurity@rust-lang.org (for any other\nconcerns). We're very happy to help.",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/09/17/targeted-attacks/"
    },
    {
      "id": "7b9c453985ed1378e93c",
      "title": "Rust debugging survey 2026 results",
      "content_text": "One of the biggest challenges Rust developers report in our\nannual surveys is a subpar debugging experience. So, back\nin February, we ran our first Rust Debugging Survey ,\nin the hopes of identifying how Rust developers are using debuggers and what\nproblems they are facing when doing so. We received over 2,300 responses, and\nwe'd like to thank everyone who took the time to participate in the survey!\nIn this report, we'll go over some of the results of the survey. If you'd like,\nyou can also…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "7b9c453985ed1378e93c",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "Rust debugging survey 2026 results",
            "item_type": "entry",
            "summary": "added: Rust debugging survey 2026 results",
            "after": {
              "title": "Rust debugging survey 2026 results",
              "link": "https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/",
              "id": "https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/",
              "author": "Sam Kellam",
              "published_at": "2026-09-07T00:00:00Z",
              "updated_at": "2026-09-07T00:00:00Z",
              "summary": "One of the biggest challenges Rust developers report in our\nannual surveys is a subpar debugging experience. So, back\nin February, we ran our first Rust Debugging Survey ,\nin the hopes of identifying how Rust developers are using debuggers and what\nproblems they are facing when doing so. We received over 2,300 responses, and\nwe'd like to thank everyone who took the time to participate in the survey!\nIn this report, we'll go over some of the results of the survey. If you'd like,\nyou can also check out the complete results of the survey .\nIf you'd like to skip ahead to any particular section, you can do so with this\nindex:\nWho Uses Debuggers?\nHow Are Debuggers Used?\nChallenges\nDebugger Visualizers\nClosing Remarks\nWho Uses Debuggers?\nThe first step to making sense of the survey results is understanding who took\nthe survey. We asked respondents to rate their Rust expertise, from \"Never used\nit\" to \"Advanced\". Over 80% reported themselves as \"Advanced\" or \"Intermediate\",\nsplit roughly evenly between the two:\n[ PNG ] [ SVG ]\nWe also asked respondents if they currently use or have used debuggers in Rust.\nOver 46% said they currently do, with the remaining responses split between\n\"have in the past\" and \"never have\". That means that over half of respondents do\nnot currently use a debugger for Rust!\n[ PNG ] [ SVG ]\nCategorized by expertise, the responses reveal that roughly half of \"beginners\"\nhave never used debuggers in Rust! On the other hand, nearly half of \"advanced\nusers\" currently do use debuggers in Rust:\n[ PNG ] [ SVG ]\nFor respondents who indicated they had previously used Rust but no longer did,\nwe asked if challenges with debugging support were why they stopped. For nearly\n3%, the answer was \"yes\", with an additional 24% reporting debugging issues as\nbeing partially responsible (though mind the small response count; most\nrespondents were active users of Rust):\n[ PNG ] [ SVG ]\nHow Are Debuggers Used?\nKnowing what debuggers developers are using and how is another im",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/09/07/rust-debugging-survey-2026-results/"
    },
    {
      "id": "f1f68b508b52d53a8243",
      "title": "Announcing Rust 1.98.1",
      "content_text": "The Rust team has published a new point release of Rust, 1.98.1. Rust is a programming language that is empowering everyone to build reliable and efficient software.\nIf you have a previous version of Rust installed via rustup, getting Rust 1.98.1 is as easy as:\nrustup update stable\nIf you don't have it already, you can get rustup from the appropriate page on our website.\nWhat's in 1.98.1\nRust 1.98.1 fixes a miscompilation in vtable generation .\nIn Rust 1.98.0, in some circumstances, rustc would…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "f1f68b508b52d53a8243",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "Announcing Rust 1.98.1",
            "item_type": "entry",
            "summary": "added: Announcing Rust 1.98.1",
            "after": {
              "title": "Announcing Rust 1.98.1",
              "link": "https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/",
              "id": "https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/",
              "author": "The Rust Release Team",
              "published_at": "2026-09-03T00:00:00Z",
              "updated_at": "2026-09-03T00:00:00Z",
              "summary": "The Rust team has published a new point release of Rust, 1.98.1. Rust is a programming language that is empowering everyone to build reliable and efficient software.\nIf you have a previous version of Rust installed via rustup, getting Rust 1.98.1 is as easy as:\nrustup update stable\nIf you don't have it already, you can get rustup from the appropriate page on our website.\nWhat's in 1.98.1\nRust 1.98.1 fixes a miscompilation in vtable generation .\nIn Rust 1.98.0, in some circumstances, rustc would incorrectly generate a trait object vtable with a null pointer\nwhere a function pointer should be. This leads to undefined behavior in the\nemitted code. In some cases this may 'just' cause segfaults due to the null\npointer being loaded, but it is possible for it to be justification for\narbitrary effects (as is typical for UB).\nIf you'd like to help us out by testing future releases, you might consider\nusing the beta ( rustup default beta ) and nightly ( rustup default nightly ) channels locally and in your CI. Please\nreport any bugs you\nmight come across!\nContributors to 1.98.1\nMany people came together to create Rust 1.98.1. We couldn't have done it without all of you. Thanks!",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/09/03/Rust-1.98.1/"
    },
    {
      "id": "80b5b5a3a1f56cd7cec3",
      "title": "Announcing rustup 1.29.1",
      "content_text": "The rustup team is happy to announce the release of rustup version 1.29.1.\nRustup is the recommended tool to install Rust , a\nprogramming language that empowers everyone to build reliable and efficient\nsoftware.\nWhat's new in rustup 1.29.1\nThe headlines of this release are:\nConcurrency in certain rustup operations has been improved:\nWhen running rustup update , rustup will first check for possible updates in parallel. pr#4752\nWhen running rustup component add with multiple components, they will…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "80b5b5a3a1f56cd7cec3",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "Announcing rustup 1.29.1",
            "item_type": "entry",
            "summary": "added: Announcing rustup 1.29.1",
            "after": {
              "title": "Announcing rustup 1.29.1",
              "link": "https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/",
              "id": "https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/",
              "author": "The Rustup Team",
              "published_at": "2026-09-01T00:00:00Z",
              "updated_at": "2026-09-01T00:00:00Z",
              "summary": "The rustup team is happy to announce the release of rustup version 1.29.1.\nRustup is the recommended tool to install Rust , a\nprogramming language that empowers everyone to build reliable and efficient\nsoftware.\nWhat's new in rustup 1.29.1\nThe headlines of this release are:\nConcurrency in certain rustup operations has been improved:\nWhen running rustup update , rustup will first check for possible updates in parallel. pr#4752\nWhen running rustup component add with multiple components, they will be installed concurrently. pr#4790\nImplicit installation of the active toolchain in rustup-init and rustup invocations has\nbeen deprecated where deemed unnecessary and will now produce a warning. pr#4840\nPlease see our\nblog post\nfor more details regarding this change.\nrustup doc now supports the --serve flag which allows serving the docs over local HTTP.\nThis should help users with containerized browser and/or rustup setups. pr#4986\nInstalling i686-pc-windows-* host toolchains on 64-bit Windows now requires --force-non-host .\npr#4935\nrustup-init will no longer leave unexpected files on disk after cancelled installations. pr#4996\nA bug has been fixed which might cause Windows installation to fail when using rustup-init.sh .\npr#4756\n\"Target triple \" has been renamed to \"target tuple \" across the project to reflect the\nnew terminology .\npr#4743 pr#4827 pr#4834\nPlease note that this is not a breaking change in the CLI since the existing\noptions such as --target are not using this terminology.\nIn addition, rustup now officially supports aarch64-pc-windows-gnullvm as a host platform. pr#4523\nFurther details are available in the changelog !\nHow to update\nIf you have a previous version of rustup installed, getting the new one is as easy as stopping\nany programs which may be using rustup (e.g. closing your IDE) and running:\n$ rustup self update\nRustup will also automatically update itself at the end of a normal toolchain update:\n$ rustup update\nIf you don't have it already, you can ge",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/09/01/Rustup-1.29.1/"
    },
    {
      "id": "3eea82068368004d2dfd",
      "title": "Announcing our first Maintainers in Residence",
      "content_text": "We are very happy to announce the Rust Project's first round of Maintainers in Residence:\nGen Li ( @rami3l ), Chris Denton ( @ChrisDenton ), Alejandra González ( @blyxyas ), León Liehr ( @fmease ), and Maintainer Grant recipients: Jason Newcomb ( @Jarcho ) and Jonas Böttiger ( @joboet ). These contributors will be funded for their rust-lang maintenance activities for (at least) the following 12 months!\nThe funding of the Maintainer in Residence (MiR) and Maintainer Grantee roles is possible…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "3eea82068368004d2dfd",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/08/26/announcing-our-first-maintainers-in-residence/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "Announcing our first Maintainers in Residence",
            "item_type": "entry",
            "summary": "added: Announcing our first Maintainers in Residence",
            "after": {
              "title": "Announcing our first Maintainers in Residence",
              "link": "https://blog.rust-lang.org/2026/08/26/announcing-our-first-maintainers-in-residence/",
              "id": "https://blog.rust-lang.org/2026/08/26/announcing-our-first-maintainers-in-residence/",
              "author": "Lori Lorusso, Jakub Beránek",
              "published_at": "2026-08-26T00:00:00Z",
              "updated_at": "2026-08-26T00:00:00Z",
              "summary": "We are very happy to announce the Rust Project's first round of Maintainers in Residence:\nGen Li ( @rami3l ), Chris Denton ( @ChrisDenton ), Alejandra González ( @blyxyas ), León Liehr ( @fmease ), and Maintainer Grant recipients: Jason Newcomb ( @Jarcho ) and Jonas Böttiger ( @joboet ). These contributors will be funded for their rust-lang maintenance activities for (at least) the following 12 months!\nThe funding of the Maintainer in Residence (MiR) and Maintainer Grantee roles is possible thanks to generous donations to the Rust Foundation Maintainers Fund (RFMF) from Google, AWS, OpenAI, the Rust Project Leadership Council and also individual sponsors. We also want to thank the people who advocated for maintainer funding within their companies; Tyler Mandry from Google, Niko Matsakis and Jess Izen from AWS and Predrag Gruevski from OpenAI, and also the whole Rust Leadership Council and our funding advisors . If you would like to help us support even more Rust contributors, consider donating to RFMF.\nThe Rust Foundation has published a press release and a blog post , where you can learn more about the sponsors and the supported contributors.\nRead more below to learn about the MiR program, how we chose the funded contributors, and of course who they are !\nBackground\nThe Maintainer in Residence program, established in RFC 3931 , is designed to provide stable financial support for Rust contributors, so that they can truly focus on crucial maintenance activities. Currently, there are three categories of support that we offer:\nFull-time MiR: funded for 5 days/week of Rust Project work\nHalf-time MiR: funded for ~2.5 days/week of Rust Project work\nMaintainer Grant: funded for ~1 day/week of Rust Project work\nFunding for this program comes from the Rust Foundation Maintainers Fund, which was launched recently, and the whole program is managed by the Rust Funding team .\nWhen deciding who to fund, we took a systematic approach. First, we looked at Rust teams to understand t",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/08/26/announcing-our-first-maintainers-in-residence/"
    },
    {
      "id": "dead2a29a7b3b52708b7",
      "title": "Enabling the next-generation trait solver on nightly",
      "content_text": "After nearly 4 years of active development, the next-generation trait solver is close to stabilization. We are enabling it by default on nightly to surface any remaining issues and plan to stabilize it in the next months. This is the largest single change to the Rust compiler since its initial release. It completely replaces how we prove where-clauses, normalize associated types, and much more. Please try out the latest nightly and open an issue if you encounter any bugs or regressions.\nThis is…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "dead2a29a7b3b52708b7",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/08/21/enabling-next-solver-on-nightly/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "Enabling the next-generation trait solver on nightly",
            "item_type": "entry",
            "summary": "added: Enabling the next-generation trait solver on nightly",
            "after": {
              "title": "Enabling the next-generation trait solver on nightly",
              "link": "https://blog.rust-lang.org/2026/08/21/enabling-next-solver-on-nightly/",
              "id": "https://blog.rust-lang.org/2026/08/21/enabling-next-solver-on-nightly/",
              "author": "lcnr",
              "published_at": "2026-08-21T00:00:00Z",
              "updated_at": "2026-08-21T00:00:00Z",
              "summary": "After nearly 4 years of active development, the next-generation trait solver is close to stabilization. We are enabling it by default on nightly to surface any remaining issues and plan to stabilize it in the next months. This is the largest single change to the Rust compiler since its initial release. It completely replaces how we prove where-clauses, normalize associated types, and much more. Please try out the latest nightly and open an issue if you encounter any bugs or regressions.\nThis is an internal component of the compiler. The main benefits of this rework will come in the future. The removal of the old implementation will unblock features such as Type Alias Impl Trait and Return Type Notation , allow us to add new implicit default trait bounds (e.g., Move and Forget ), and enable us to fix the remaining type system unsoundnesses .\nEven so, this already fixes a huge number of issues. As an underapproximation, we currently know of more than 200 issues on GitHub fixed by this change . This also has a significant impact on compile times; more on that later. When developing on nightly, you may accidentally rely on behavior only supported by the new trait solver.\nThis is an incredibly big change which results in a non-trivial amount of breakage. Most of these changes are intended improvements to type inference or the removal of undesirable behavior. We are tracking the known issues and breakage in a pinned GitHub issue .\nWhat can I do?\nPlease update to the latest nightly version by using rustup update nightly and use it to test your existing projects and libraries.\nPlease tell us if you encounter any breakage, compile-time performance regression, or bad diagnostics. We have not yet spent too much time on error messages for the next-generation trait solver, so we would also appreciate you using this nightly for development to find poor diagnostics and other bugs in our error handling.\nIf you encounter any issue, take a quick look at the pinned GitHub issue to see",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/08/21/enabling-next-solver-on-nightly/"
    },
    {
      "id": "29acd9cc896b5315a263",
      "title": "Supply chain attack on arrayref",
      "content_text": "What happened\nOn 2026-08-20 at 7:15 UTC we got a report that the proc-macro1 crate was malicious.\nThe Rust Security Response Team verified this to be the case: the crate had a build script that was downloading a malicious payload.\nThis crate proc-macro1 and others like it ( proc-macro-en , aovine , arone , aronenao , tinymember ) have been deleted.\nFurthermore, we discovered that the popular arrayref crate had recently been republished and made to depend on this crate, with the most recent…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "29acd9cc896b5315a263",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "Supply chain attack on arrayref",
            "item_type": "entry",
            "summary": "added: Supply chain attack on arrayref",
            "after": {
              "title": "Supply chain attack on arrayref",
              "link": "https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/",
              "id": "https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/",
              "author": "Manish Goregaokar",
              "published_at": "2026-08-20T00:00:00Z",
              "updated_at": "2026-08-20T00:00:00Z",
              "summary": "What happened\nOn 2026-08-20 at 7:15 UTC we got a report that the proc-macro1 crate was malicious.\nThe Rust Security Response Team verified this to be the case: the crate had a build script that was downloading a malicious payload.\nThis crate proc-macro1 and others like it ( proc-macro-en , aovine , arone , aronenao , tinymember ) have been deleted.\nFurthermore, we discovered that the popular arrayref crate had recently been republished and made to depend on this crate, with the most recent versions yanked. We have removed the malicious version and unyanked the maliciously-yanked versions. Other crates by that author ( internment , append-only-vec ) were also affected so we have done the same for those, and locked the account as a precaution. We do not believe the author of arrayref to be acting maliciously, but their computer or credentials are likely compromised, and we are attempting to contact them.\nWhat you need to do\nWe recommend you check your local dependencies to ensure these crates were not pulled in.\nHere are the malicious versions that we deleted from crates.io:\nappend-only-vec@0.1.9 : published at 2026-08-20T07:37:49Z , deleted at 2026-08-20T09:25:24Z . Online for 107 minutes.\narrayref@0.3.10 : published at 2026-08-20T07:15:00Z , deleted at 2026-08-20T08:41:40Z . Online for 86 minutes.\ninternment@0.8.7 : published at 2026-08-20T07:34:07Z , deleted at 2026-08-20T09:04:11Z . Online for 90 minutes.\nproc-macro1 , proc-macro-en , aovine , arone , aronenao , tinymember (any versions).\nYou can quickly check if these crates have been used locally by going through ~/.cargo/registry/cache with this command:\nfind ~/.cargo/registry/cache - type f \\( \\\n- name ' append-only-vec-0.1.9.crate ' - o \\\n- name ' arrayref-0.3.10.crate ' - o \\\n- name ' internment-0.8.7.crate ' - o \\\n- name ' proc-macro1-*.crate ' - o \\\n- name ' proc-macro-en-*.crate ' - o \\\n- name ' aovine-*.crate ' - o \\\n- name ' arone-*.crate ' - o \\\n- name ' aronenao-*.crate ' - o \\\n- name ' tinymember-*.c",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/"
    },
    {
      "id": "4268a8373d9277feaef4",
      "title": "Announcing Rust 1.98.0",
      "content_text": "The Rust team is happy to announce a new version of Rust, 1.98.0. Rust is a programming language empowering everyone to build reliable and efficient software.\nIf you have a previous version of Rust installed via rustup , you can get 1.98.0 with:\n$ rustup update stable\nIf you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes for 1.98.0 .\nIf you'd like to help us out by testing future releases, you might consider updating…",
      "date_published": "2026-09-24T10:05:27Z",
      "_unlimitedpipe": {
        "event": {
          "schema": "unlimitedpipe.event/1",
          "id": "4268a8373d9277feaef4",
          "source": "rss",
          "type": "change",
          "key": "https://blog.rust-lang.org/2026/08/20/Rust-1.98.0/",
          "source_url": "https://blog.rust-lang.org/feed.xml",
          "timestamp": null,
          "observed_at": "2026-09-24T10:05:27Z",
          "data": {
            "change": "added",
            "label": "Announcing Rust 1.98.0",
            "item_type": "entry",
            "summary": "added: Announcing Rust 1.98.0",
            "after": {
              "title": "Announcing Rust 1.98.0",
              "link": "https://blog.rust-lang.org/2026/08/20/Rust-1.98.0/",
              "id": "https://blog.rust-lang.org/2026/08/20/Rust-1.98.0/",
              "author": "The Rust Release Team",
              "published_at": "2026-08-20T00:00:00Z",
              "updated_at": "2026-08-20T00:00:00Z",
              "summary": "The Rust team is happy to announce a new version of Rust, 1.98.0. Rust is a programming language empowering everyone to build reliable and efficient software.\nIf you have a previous version of Rust installed via rustup , you can get 1.98.0 with:\n$ rustup update stable\nIf you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes for 1.98.0 .\nIf you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel ( rustup default beta ) or the nightly channel ( rustup default nightly ). Please report any bugs you might come across!\nWhat's in 1.98.0 stable\nAlgebraic floating-point methods\nThe floating-point types f32 and f64 now have \"algebraic\" methods for addition, subtraction, multiplication, division, and remainder. These allow optimizations on these operations using the algebraic properties of real numbers, even though these properties do not hold with the limitations of floating-point representations. The exact set of optimizations is not specified, but may be similar to the kind of optimization you would see with the -ffast-math option in other languages.\nFor example, floating-point addition is not associative , so a sum like a + b + c + d must be evaluated in the left-associative order in which it is parsed, like ((a + b) + c) + d . If you write the same sum as a chain of algebraic_add calls, then the compiler is free to reorder it, perhaps like (a + b) + (c + d) to evaluate the partial sums simultaneously. Broader loop-vectorization is often enabled by using these algebraic methods as well.\nThese methods are non-deterministic, since the compiler is free to choose different optimizations, but they never cause undefined behavior. See the library documentation and the original API change proposal for more details.\nBuffered integer formatting\nAll of the primitive integer types now have a format_into method that takes a &mut NumBuffer<Self> parameter,",
              "categories": [],
              "feed": {
                "title": "Rust Blog",
                "url": "https://blog.rust-lang.org/",
                "feed_url": "https://blog.rust-lang.org/feed.xml"
              }
            }
          },
          "metadata": {
            "status": 200,
            "final_url": "https://blog.rust-lang.org/feed.xml",
            "elapsed_ms": 67,
            "not_modified": false,
            "method": "atom10"
          },
          "provenance": [
            {
              "step": "rss",
              "version": "0.3.0"
            },
            {
              "step": "diff",
              "version": "0.3.0",
              "args": {
                "namespace": "rust-news",
                "only": [
                  "added"
                ],
                "emit_initial": true
              }
            }
          ]
        }
      },
      "url": "https://blog.rust-lang.org/2026/08/20/Rust-1.98.0/"
    }
  ]
}
