# How Ubuntu Is Using Rust to Rebuild Core System Tools

[Jetbrains](https://yomu.fyi/company/jetbrains) · Irina Mihajlovic · Aug 26, 2026

**Type:** Explainer

## Summary

Canonical is selectively adopting Rust to rewrite core system utilities across Ubuntu releases to improve memory safety, security, and long-term resilience. Starting in Ubuntu 26.04 LTS, uutils coreutils shipped as the default implementation targeting complete GNU compatibility, alongside sudo-rs, which introduced intentional behavior changes like asterisk display on password entry. Canonical is also funding ntpd-rs to consolidate NTP, NTS, and PTP into a single utility, while collaborating on UPKI to bring certificate revocation to system utilities. To manage Rust packaging at distribution scale, Canonical vendors dependencies per package rather than creating individual Debian packages for crates and embeds software bills of materials into binaries using cargo auditable. Future plans include exploring Rust implementations of compression libraries like bzip2-rs, zlib-rs, and zstd-rs.

## Context

Ubuntu powers 15 million deployments across servers, desktops, edge devices, and vehicles, where legacy C utilities carry decades of accumulated bugs. In critical infrastructure, unhandled crashes and memory flaws present severe security and reliability risks.

## Approach / What changed

Canonical is executing an incremental Rust migration at LTS release boundaries. It vendors Rust dependencies into single package tarballs, embeds SBOMs using cargo auditable, and replaces core utilities with alternatives like uutils coreutils, sudo-rs, ntpd-rs, and UPKI.

## Takeaways

- uutils coreutils prioritizes 100% bug-for-bug GNU compatibility, whereas sudo-rs deliberately redesigns behavior, including displaying asterisks during password entry.
- ntpd-rs is planned to replace chrony and linuxptp by combining NTP, NTS, and PTP into a single memory-safe tool with one configuration file.
- Canonical packages Rust by vendoring crates into tarballs per package and embeds an SBOM in every Rust binary using cargo auditable.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Deployment](https://yomu.fyi/topic/deployment), [Open Source](https://yomu.fyi/topic/open-source), [Reliability](https://yomu.fyi/topic/reliability), [Rust](https://yomu.fyi/topic/rust)

[Read original post](https://blog.jetbrains.com/rust/2026/08/26/ubuntu-rust)
