162 wires and counting

$ follow Rust

Keep up with Rust in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-10-28
stories 85

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

crates.io rejects NUL bytes in publish, rustup stops proxying to itself

By RepoJournal · Filed · About Rust · Composed from the cited sources · methodology

crates.io now answers a malformed publish with a 400 that names the bad field instead of a 500, while rustup fixes a rust-analyzer lookup that could recurse back into its own proxy.

publish: Reject NUL characters in crate metadata rust-lang/crates.io

by Turbo87

Postgres rejects NUL characters in text columns, so a README or free-form Cargo.toml field containing one failed the publish endpoint with a 500 when the value hit the database, most recently from a README holding a literal 'AMQP\x00\x00\t\x01' byte string. publish() now returns a 400 listing every affected field, with readme and readme_file checked before the tarball is processed.

fix(toolchain): don't fall back to external RA redirecting to rustup rust-lang/rustup

by rami3l

rustup's fallback to an external rust-analyzer checked only whether the candidate was named rust-analyzer and compared it with same_file, so a redirector in PATH that bounces back to rustup slipped through. The fallback now refuses that case rather than looping into the proxy.

Rollup of 9 pull requests rust-lang/rust

by tgross35

A nine-PR rollup landed const resumable_breakpoint in core with a std re-export, an invariant lifetime brand for LLVM contexts in cg_llvm, tests for unsoundness involving alias liveness, and a lexer change treating lifetimes as identifiers.

perf(windows): delay-load system DLLs the proxies don't use rust-lang/rustup

by Alexandre Zollinger Chohfi

rustup-init adds user32, shell32, ole32, oleaut32, crypt32, secur32 and ws2_32 to its Windows delay-load list so proxied cargo and rustc calls stop mapping them at start-up; they still load from System32 on first use, and only linker config changed.

test_utils: Insert email addresses in `UserBuilder::insert()` rust-lang/crates.io

by Turbo87

The long tail is test infrastructure: UserBuilder::insert() now creates a verified <username>@example.com address, with_email(), with_email_verified() and without_email() replace hand-edited emails rows, without_github() and with_gh_avatar() retire the with_gh_id(-1) convention and OauthGithubBuilder, and PublishBuilder gains a readme_file() setter.

Quick answers

What shipped in Rust on October 28, 2026?
crates.io now answers a malformed publish with a 400 that names the bad field instead of a 500, while rustup fixes a rust-analyzer lookup that could recurse back into its own proxy. In total, 74 commits and 11 pull requests landed.
Who contributed to Rust on October 28, 2026?
5 developers shipped this update, including bors, tgross35, rami3l, Alexandre Zollinger Chohfi, and Turbo87.
What were the notable Rust updates?
publish: Reject NUL characters in crate metadata, fix(toolchain): don't fall back to external RA redirecting to rustup, and Rollup of 9 pull requests.