I replaced my standard Linux coreutils with Rust versions and it’s surprisingly faster
I replaced my standard Linux coreutils with Rust versions and it’s surprisingly faster
https://www.makeuseof.com/replaced-standard-linux-coreutils-with-rust-versions-surprisingly-faster/
Publish Date: 2026-02-20 18:01:00
Source Domain: www.makeuseof.com
The first time that familiar pause caught my attention was while I was using the sort command to run through a few hundred megabytes of log text. Until now, I had always ignored it. It comes up when I use du -sh to crawl project directories or ls -la in folders packed with build artifacts.
GNU coreutils are as foundational as it gets on Linux, and they feel untouchable. But as soon as it dawned on me that reliable doesn’t always mean optimal, especially on modern hardware, I knew it was time to try something different. So, uutils, the Rust reimplementation of GNU coreutils, was my next stop. I started by swapping out one command, then another, and quite often, uutils was faster. If you spend meaningful time in the terminal, these are worth trying.
The friction you stopped noticing was hiding in plain sight
“Fast enough” only feels fast until you compare it
If you aren’t paying attention because something feels natural, you can start assuming that its limitations are normal. This is why I always ignored that pause that happens on a large directory listing before it prints. The delay you get if you sort logs while debugging can break your flow. You probably chalk it up to disk I/O.
On modern devices, it’s easier to see how outdated these assumptions are. These machines have extremely fast NVMe drives, and the CPU cores are usually underutilized by average userland tools. However, because we still use several tools from a different hardware era, they are single-threaded and conservative. Most of the constraints they were built around no longer hold.
No one benchmarks or questions coreutils because they always work. In fact, when we want better productivity, we’d rather tune our prompts and tweak the kernel. But comparing output side by side showed me the problem was the tool.