It was just a few days ago that Rust Coreutils 0.2 released with “massive” performance gains and production-ready Ubuntu support. Rust Coreutils 0.2.2 is out today and is delivering a few more enhancements — most excitingly is a faster base64 command that can now outperform the GNU Coreutils version.
GNU Coreutils 0.2.2 was primarily released so soon in order to deliver some important infrastructure fixes for more reliable distribution and deployment across different platforms. A number of the Rust dependencies were updated as part of the process. There are also some fixes like avoiding a panic in stty, fixing cp when copying the current directory to an existing directory, and other fixes.
Catching my intrigue with Rust Coreutils 0.2.2 is improving the performance of its base64 utility, which was done by simply leveraging the base64-simd Rust crate for leveraging SIMD capabilities on modern CPUs.
As outlined in the pull request this brings significant performance improvements for Rust Coreutils’ base64 command. In a sample benchmark the previous release took 5.998 seconds while with this new version is down to 3.146 seconds. Taking half the amount of time as before is quite an achievement on its own.
What makes this even more exciting is that it outperforms the base64 command shipped by GNU Coreutils, which came in at a 4.901 second average. The new base64 with Rust Coreutils 0.2.2 is having clear performance advantages over the GNU Coreutils version.
This change comes from Sylvestre Ledru himself, the lead developer of the uutils effort.
The Rust base64-simd crate supports the likes of SSE4.1, AVX2, AVX-512, ARM NEON, AArch64 NEON, WASM SIMD128 for SIMD across different architectures.
Downloads and more information on the Rust Coreutils 0.2.2 release via GitHub.