Skip to content

Core utils re-implementation for UNIX/UNIX-like systems written in Rust

License

Notifications You must be signed in to change notification settings

pinghe/coreutils

 
 

Repository files navigation

Coreutils in Rust

Hits-of-Code Build Status FOSSA Status

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 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.

Contributing

Check the CONTRIBUTING.md file for the guidelines to contribute to the project, including issue reports, git commits messages, etc.

Compilation tests guarantees

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.

Platform Tier CI Status Manual Status
Linux Tier1 Linux Passing (Manjaro Linux 5.3.2 - 2019-10-28) (8695863)
MacOS Tier1 MacOS -
FreeBSD Tier2 FreeBSD Passing (FreeBSD 12.0 - 2019-10-28) (8695863)
NetBSD Tier2 NetBSD - (system without minimal version)
Solaris Tier2 Solaris - (system without minimal version)
Fuchsia Tier2 Fuchsia -
OpenBSD Tier3 OpenBSD Passing (OpenBSD 6.6 Current - 2019-10-28) (8695863)
DragonflyBSD Tier3 DragonflyBSD Passing (DragonflyBSD 5.6.2 - 2019-10-28) (8695863)
Haiku Tier3 Haiku -

Compilation

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

Compilation example

cp <Platform>.toml Cargo.toml
cargo build --release

Install example

cp <Platform>.toml Cargo.toml
cargo install --path .

Tools

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

Licensing

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/.

Contributors

Without they this project would not be in the shape it is today

About

Core utils re-implementation for UNIX/UNIX-like systems written in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.6%
  • Shell 0.4%