An attempt to make a safe re-implementation coreutils aiming for a minimal and yet complete set of utilities. This project aims to have at least POSIX especification and the common features between several implementations of the utility.
This project has no intent to be 100% compatible with GNU's coreutils, like Uutils' coreutils, but if happens to be, that's ok too.
Check the CONTRIBUTING.md file for the guidelines to contribute to the project, including issue reports, git commits messages, etc.
This project's minimum supported rustc
version (MSRV) is 1.40.0.
This will not be conservative until we get to a 1.0 version. So it can be changed at any point in time.
The compilations is tested for Rust Tier 1 and Tier 2 x86_64 Unix/Unix-like platforms, with exception of redox target, with Github Actions.
The Tier1 platforms are tested on stable, beta and nightly Rust, while Tier2 and Tier3 platforms are tested on stable only, since they are no guarantees to be available in beta and nightly Rust.
Also note that Tier3 Rust Platform will probably fail before hits the compilation check, since my only options is to use a Linux OS, add the target and do cargo check --target
, and they often are not available as a target for any Tier1 platforms. If you use one of these platforms and have the right MSRV requirements and it build successfully, let me know, if it fails, open a issue with the compilation error.
Since not all targets provides full Unix API coverage (cause they aren't Unix) and some targets have some methods lacking on libc crate, one can provide a manifest that have all utilities that would work on the target
cp <Platform>.toml Cargo.toml
cargo build --release
Name | Not Started | Started | Done |
---|---|---|---|
basename | X | ||
cat | X | ||
chgrp | X | ||
chmod | X | ||
chown | X | ||
chroot | X | ||
clear | X | ||
comm | X | ||
cp | X | ||
csplit | X | ||
cut | X | ||
date | X | ||
dd | X | ||
df | X | ||
diff | X | ||
dirname | X | ||
du | X | ||
echo | X | ||
env | X | ||
expand | X | ||
expr | X | ||
false | X | ||
groups | X | ||
hash | X | ||
head | X | ||
id | X | ||
install | X | ||
join | X | ||
link | X | ||
ln | X | ||
logname | X | ||
ls | X | ||
mkdir | X | ||
mktemp | X | ||
mkfifo | X | ||
mv | X | ||
nice | X | ||
nl | X | ||
nohup | X | ||
od | X | ||
paste | X | ||
patch | X | ||
printf | X | ||
pwd | X | ||
rm | x | ||
rmdir | X | ||
sed | X | ||
seq | X | ||
sort | X | ||
sleep | X | ||
split | X | ||
stat | X | ||
stty | X | ||
tail | X | ||
tee | X | ||
test | X | ||
time | X | ||
touch | X | ||
tr | X | ||
true | X | ||
tsort | X | ||
tty | X | ||
uname | X | ||
unexpand | X | ||
uniq | X | ||
unlink | X | ||
uptime | X | ||
users | X | ||
wc | X | ||
who | X | ||
whoami | X | ||
yes | X |
This software is licensed under the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, you can obtain one at http://mozilla.org/MPL/2.0/.
Without they this project would not be in the shape it is today