Rust Weekly #5: Native Rust Enters systemd, tsrs Speeds Up TypeScript by 8x, and Google Style Guide Discourages Rc/Arc

Rust · Weekly #5

Rust Weekly #5: Native Rust Enters systemd, tsrs Speeds Up TypeScript by 8x, and Google Style Guide Discourages Rc/Arc

rustRustWeeklySystems ProgrammingCompilers

Sources:GitHub Releases + 官方博客 + HN

📦 Releases & Updates

Official Stable Evolution and Toolchain Security Fixes

The current latest official stable release is Rust 1.99.1 (released on October 15, 2026). For a comprehensive breakdown of the 1.99.0 release earlier this month, see our deep dive: Rust 1.99.0 Deep Dive. Rust 1.99.1 resolved three critical regressions: un-zero-extended FFI boolean return values on x86_64, missing wcslen symbols on embedded targets, and broken dynamic library search paths for rust-lld on macOS.

On October 20, the official toolchain installer released rustup 1.29.2, upgrading its rustls-webpki and webpki-root-certs dependencies to revoke the problematic eMudhra intermediate certificate flagged in CVE-2026-111943 (RUSTSEC-2026-0382). Developers can update by running rustup self update.

Several standard library features and compiler pipeline improvements were merged or advanced on the main branch this week:

ChangeSpecification & Implementation AdjustmentPractical Engineering Impact
Direct metadata embedding embed-metadata stabilized (PR #163821)Writes compilation metadata directly into rlib and object files instead of emitting standalone .rmeta files.Reduces discrete artifact count in multi-stage builds, cutting synchronization overhead in distributed build caches and container images.
Windows handle inheritance control inherit_handles stabilized (PR #162445)Exposes explicit handle inheritance controls in std::os::windows::process::CommandExt.Prevents child processes on Windows from accidentally inheriting sensitive pipe or file handles, providing native isolation for high-security sandboxes.
Function parameters support const generic expressions (PR #163792)Allows const generics to be directly evaluated and inferred within function parameter positions.Simplifies function signatures for peripheral drivers and fixed-length SIMD operations, eliminating boilerplate helper type casts.
Resumable breakpoint primitive resumable_breakpoint (PR #163581)Introduces hardware-level resumable breakpoint primitives in core::process.Enables seamless integration with dynamic tracers, preventing debuggers from terminating running host processes upon inspection.
Next-generation trait solver enters final comment period (MCP #960)Compiler flag -Znext-solver=globally officially enters its Final Comment Period (FCP).Rewrites core type inference algorithms, resolving decade-old soundness holes and clearing blockers for async lifetime inference.

📝 In-Depth Stories

Native Rust Enters systemd: No Cargo, No alloc, and a Tiny Binary Establish Low-Level Integration Conventions

What Happened: On October 24, Linux’s core init system systemd merged PR #44324, officially integrating Rust into its architecture. Submitted by kernel and systemd core maintainer Christian Brauner, the patch operationalizes the consensus from the Berlin hackathon. The first component converted is the keyring configuration utility systemd-keyring-setup.

Why It Matters: systemd establishes strict engineering conventions for introducing Rust into core system plumbing: it is strictly limited to brand-new leaf utilities, leaving existing C code untouched; Cargo is completely bypassed in favor of Meson-driven builds; it operates under strict no_std, banning the standard library’s alloc containers to prevent unhandled out-of-memory aborts. Instead, systemd_shared provides lightweight Box and Vec implementations that return errno on allocation failure. By dynamically linking to libsystemd-shared with LTO enabled, the compiled binary measures just 32 KB (compared to 20 KB for the C version). Furthermore, Vec<u8, Erasing> ensures sensitive cryptographic material is automatically zeroed on drop—establishing a clear blueprint for introducing Rust into critical C infrastructure.

Who It Affects: Linux distribution maintainers, OS daemon developers, and system architects maintaining hybrid C/Rust builds.

Cloudflare and VoidZero Unveil tsrs: Pure-Rust TypeScript Port Delivering 8x Speedup and 70% Less Memory

What Happened: On October 20, Cloudflare and VoidZero announced backing for tsrs, a pure-Rust port of TypeScript originally initiated by Max Schwenk, incubating and maintaining it under the Oxc toolchain ecosystem.

Why It Matters: Under equivalent thread counts, tsrs achieves up to an 8x type-checking speedup over TypeScript 7.0 while slashing memory usage by 70%. Rather than maintaining an adversarial fork, the team collaborates directly with Microsoft; optimizations uncovered during development have already been contributed back to TypeScript 7.1 beta, accelerating the upstream compiler by 2.5x. Its pure-Rust foundation also allows compiling directly to WebAssembly, making full-featured type checking embeddable in Cloudflare Workers edge environments and in-browser developer tooling.

Who It Affects: Frontend architects managing massive monorepos, modern build tool maintainers, and platform teams operating high-density edge runtimes.

Linux 7.4 Merges 17,000 Lines of Rust Code as Gary Guo Breaks the Safe Self-Referential Struct Bottleneck

What Happened: On October 20, Linux kernel Rust subsystem maintainer Miguel Ojeda submitted a core pull request containing 17,000 lines of code for Linux 7.4. Concurrently, LWN reported on Gary Guo’s presentation at Kangrejos 2026, unveiling a safe self-referential struct design leveraging higher-ranked lifetime polymorphism.

Why It Matters: The Linux 7.4 pull request includes a major Zerocopy upgrade spanning eight versions, brand-new mem and ratelimit modules, and proc_macro_span adoption for improved macro diagnostics. Gary Guo introduced a revamped #[pin_data] macro system for pin_init. By combining higher-ranked trait bounds with private Erase wrappers, self-referential structs like NovaCore can be initialized in-place entirely within safe Rust—eliminating substantial unsafe boilerplate in NVIDIA’s Nova GPU driver. Paired with Collabora’s milestone this week where the Tyr driver successfully booted an Arm Mali-G610 MCU, kernel driver adoption for Rust is accelerating rapidly.

Who It Affects: Kernel and device driver developers, low-level graphics engineers, and systems programmers implementing complex self-referential state machines in zero-runtime environments.

Official GPU Target Group and Linker Team Formed as Next-Gen Trait Solver Approaches Stabilization

What Happened: On October 20, the Rust Compiler Team announced the creation of the GPU Target Notification Group and the Linker Team. These teams focus on troubleshooting heterogeneous compute targets and integrating alternative linkers, respectively. Meanwhile, the compiler team confirmed that the next-generation trait solver has entered its countdown to full stabilization.

Why It Matters: The GPU group brings together silicon vendor experts to streamline triage for GPGPU issues, while the Linker team puts MCP #964 into action by embedding pure-Rust linkers like Wild into the build pipeline. Representing nearly a decade of architectural work, the new trait solver completely overhauls type inference logic, permanently fixing variance soundness bugs and removing longstanding expressiveness limitations in async Rust and impl Trait. Together with LLVM 23 performance improvements and ongoing work on the parallel frontend, tackling technical debt in the compiler is visibly cutting day-to-day build times.

Who It Affects: Developers of heterogeneous computing libraries, build optimization engineers for large Rust codebases, and library authors designing complex generic abstractions.


🔥 Community Discussions

Google Publishes Official Rust Style Guide: “Avoid Rc and Arc” Rekindles Community Debate

  • Discussion Metrics: Hacker News 390 points, 256 comments; active debate across the Chromium team and open-source communities.
  • The Incident: Google publicly released its internal Rust Style Guide. The guide explicitly instructs engineers to “Avoid Rc and Arc,” mandating single ownership and borrowing patterns whenever possible. It also recommends flat single-layer module hierarchies, strictly prohibits wildcard imports (glob imports), and favors fine-grained micro-crates.
  • Core Debates:
    • Structured Ownership Advocates: Supporters emphasize that developers transitioning from garbage-collected languages or C++ frequently overuse shared ownership smart pointers to bypass the borrow checker. This introduces atomic reference counting and heap allocation overhead while muddying data flow architecture. In massive multi-contributor monorepos like Chromium, enforcing strict tree ownership and explicit lifetimes prevents concurrency races and reference-cycle memory leaks at the architectural level.
    • Pragmatic Engineering Opponents: Critics argue that this rule represents excessive dogmatism. In complex GUI scene graphs, event-driven architectures, or long-lived background daemons, forcing strict borrowing leads to invasive lifetime parameter proliferation, driving up cognitive overhead during maintenance and refactoring. Controlled use of Arc<T> is a battle-tested pattern in the Rust community; classifying it as an anti-pattern risks pushing developers toward convoluted lifetime workarounds simply to pass code review.

tsrs vs. Microsoft tsgo: The Rust vs. Go Battle for Core Frontend Infrastructure

  • Discussion Metrics: Hacker News 432 points, 213 comments; frontend infrastructure maintainers and tooling teams benchmark both approaches.
  • The Incident: Cloudflare and VoidZero released tsrs, a pure-Rust port of TypeScript demonstrating an 8x checking speedup and 70% lower memory footprint, presenting a stark alternative to Microsoft’s internal exploration of a Go port (tsgo).
  • Core Debates:
    • Rust Native Performance Camp: tsrs supporters emphasize that web development tooling is shifting rapidly toward edge compute and micro-containers. Rust provides deterministic memory management, zero GC latency spikes, and exceptional WebAssembly compatibility, allowing full type-checking engines to run directly inside edge Workers and browsers. In large-scale cloud compilation pipelines, a small non-GC memory baseline translates directly into lower infrastructure bills.
    • Go Developer Ergonomics Camp: Pragmatists counter that Microsoft’s exploration of Go is grounded in sound engineering tradeoffs. For the TypeScript team’s organizational collaboration and rapid iteration cycles, Go offers straightforward concurrency abstractions and lower onboarding friction. Most enterprise teams prioritize ecosystem stability and compatibility over peak microbenchmarks; in typical developer workstation setups, Go provides more than enough performance headroom without incurring the steep barrier to entry imposed by Rust’s strict ownership model.

What to Watch Next Week

  • Linux 7.4 Merge Window Handling of Rust PRs: Watch Linus Torvalds’ feedback and merge decision regarding the 17,000-line Rust kernel PR and major Zerocopy bump, alongside downstream GPU driver integration progress.
  • Next-Gen Trait Solver -Znext-solver=globally FCP Review: Monitor community regression reports and compatibility feedback around complex trait resolution and lifetime boundaries as the solver concludes its final comment period.
  • Upstream Contribution Progress from tsrs to TypeScript: Follow how Oxc and tsrs engineers feed optimized analysis routines back into TypeScript 7.1 beta, and observe community advances in shared AST and incremental checking architectures.