A cross-platform Rust reimplementation of the GNU coreutils, aiming for drop-in compatibility with improved performance and error messages.
uutils/coreutils is a complete, cross-platform reimplementation of the GNU coreutils (essential command-line utilities like ls, cat, and cp) written in Rust. It is designed as a portable, high-performance drop-in replacement that runs on Linux, macOS, Windows, and other platforms, improving on aspects like error messages and performance while maintaining strict compatibility with GNU.
System administrators, DevOps engineers, and developers who write or maintain shell scripts that need to run consistently across different operating systems (Linux, macOS, Windows). It is also for Rust enthusiasts and those seeking modern, safe implementations of core utilities.
Developers choose uutils/coreutils for its strict GNU compatibility as a drop-in replacement, combined with the performance and safety guarantees of Rust. Its unique selling point is providing a single, consistent set of core utilities across all major platforms, enabling script portability without sacrificing features or correctness.
Cross-platform Rust rewrite of the GNU coreutils
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables identical shell scripts to run on Linux, macOS, and Windows without modification, as the README states it aims to work on as many platforms as possible for script transferability.
Aims to match GNU's output and error codes exactly, with differences treated as bugs, ensuring reliable drop-in replacement for most use cases according to the project goals.
Leverages Rust's efficiency and memory safety for optimized implementations, leading to improved performance over traditional C-based utilities as highlighted in the features.
Provides better error messages and optional extensions like progress indicators, improving usability over standard coreutils, as mentioned in the goals and extensions documentation.
Some GNU options are missing or behave differently, and the project openly admits that not all tests from the GNU suite are passed yet, as shown in the test coverage evolution graph.
Building with advanced features like SELinux support requires external libraries (libselinux, libclang) and specific cargo flags, adding setup complexity beyond basic installation.
Full installation with shell completions and manpages requires multiple manual steps or reliance on GNU Make, unlike simpler native package managers that handle dependencies automatically.