Replace GNU coreutils with a modern Rust implementation
R

Replace GNU coreutils with a modern Rust implementation

Replace GNU coreutils with a modern Rust implementation

23,705 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

Replacing GNU Coreutils with Rust: A Modern Take on Classic Tools

If you've spent any time in a terminal, you've used GNU coreutils. Commands like ls, cat, cp, and grep are the unspoken foundation of daily development and system work. They're reliable, ubiquitous, and… decades old. What if you could swap them out for a version that's built with modern safety, better portability, and a unified codebase? That's exactly what the uutils project is doing.

uutils/coreutils is a cross-platform reimplementation of the GNU coreutils in Rust. It’s not just a proof of concept—it’s a growing, functional alternative that aims to provide the same familiar experience while leveraging the advantages of a modern systems language. For developers curious about Rust's practical applications or anyone tired of subtle behavioral differences between macOS and Linux tools, this project is worth a look.

What It Does

In short, uutils provides a drop-in replacement for the GNU coreutils suite. It includes most of the common utilities you use every day: ls for listing files, rm for removal, mkdir, cut, sort, and dozens more. The goal is to be compatible with the GNU versions in terms of flags and output, so you can alias them in or replace them without relearning your workflow.

The project is a single, multi-call binary (like BusyBox) by default, meaning all the utilities are packed into one executable, saving space and simplifying distribution. You can also build each utility as a standalone binary if you prefer.

Why It's Cool

First, there's the Rust factor. Rust brings memory safety, thread safety, and a strong type system to code that traditionally has been written in C. This significantly reduces the risk of certain classes of bugs and vulnerabilities that can plague low-level system tools.

Then there's cross-platform consistency. Ever written a shell script on Linux only to find it breaks on macOS because date or sed behaves differently? uutils aims to provide identical behavior across Linux, macOS, Windows, and other platforms. Write your script once and run it anywhere with the same uutils binaries.

The project is also community-driven and test-heavy. It’s built in the open on GitHub, with a strong emphasis on passing the existing GNU test suites to ensure compatibility. Watching it evolve is a great way to see a large-scale, practical Rust project in action.

How to Try It

The easiest way to get started is via a package manager. If you're on macOS, you can install it with Homebrew:

brew install u

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Dec 26, 2025