[ Merci-Libre ]

coreutils-rs

coreutils-rs

coreutils-rs

a reimagining of the gnu-coreutils

A new era for utilities.

With the advent of Uutils, I had decided to start one of my most ambitions projects yet: the creation of my own set of core utilities written in Rust. Made by me, but licensed under the Gnu Public License, meaning that anyone can make their own modifications with absolute certainty that their project is forever "free" as in "freedom".

Overview

Overview

Overview

While the utilities provided by the team behind Uutils is a great toolkit for modern Operating Systems, there has been much backlash for the relicensing of the core set of utilities under the MIT license. While both me and the team behind Uutils share the same passion of modernizing the original core utilities, my project aims to reimagine the set of utilities entirely, and license them under the same license that the original set GNUcoreutils held: The Gnu Public License.


I chose the GPL-2.0 for this project because that license in particular allows much more freedom for both the users and developers than the current version of the GPL. Of course there are certain limitations with the current features of the project— not all utilities function the same as they did in the original coreutils, but much of the original command line syntax remains the same.

Why Rust?

Rust was the chosen language for this project for many reasons:

  • Rust's type safety and use of the borrow-checker provides much needed memory security that caused many vulnerabilities within the original GNU-coreutils without much impact to overall runtime.

  • Many utilities stand to benefit from Rust's concurrency features. With the use of process threading many utilities could utilize resources much more efficiently, and effectively.

  • Rust provides many modern language features that makes making these tools production ready as fast as possible, with the previous guarantees of memory safety, and reliability.


I chose Rust not just because I love the language, but because these features are heavily necessary in an ever increasing world of cybercrime and exploitation of such vulnerabilities within essential software. One should not have to worry whether or not a function inside of the cat command has a zero-day from a function that can open up a buffer overflow attack. Coreutils-rs aims to guarantee user safety to its utmost degree.

Completion list:

Ready to use (Still WIP):


NEXT TO-DO:

  • cat

  • echo

  • mkdir

  • ls

  • grep

  • diff

  • much, much more…


Efficiency

So far much progress has been made in the efficiency of certain tools, such as shred which has seen a 1.93x increase in speed compared to the original utility, albeit running 100x more intensive.


Although, there are still many key features and resource optimizations that are currently missing from these commands, that figure of being nearly twice as fast stands as an ideal to strive for.