Platform support
uutils aims to be as "universal" as possible, meaning that we try to support many platforms. However, it is infeasible for us to guarantee that every platform works. Just like Rust itself, we therefore have multiple tiers of platform support, with different guarantees. We support two tiers of platforms:
- Tier 1: All applicable utils are compiled and tested in CI for these platforms.
- Tier 2: These platforms are supported but not actively tested. We do accept fixes for these platforms.
Note: The tiers are dictated by our CI. We would happily accept a job in the CI for testing more platforms, bumping those platforms to tier 1.
Platforms per tier
The platforms in tier 1 and the platforms that we test in CI are listed below.
Operating system | Tested targets |
---|---|
Linux | x86_64-unknown-linux-gnu x86_64-unknown-linux-musl arm-unknown-linux-gnueabihf i686-unknown-linux-gnu aarch64-unknown-linux-gnu |
macOS | x86_64-apple-darwin |
Windows | i686-pc-windows-msvc x86_64-pc-windows-gnu x86_64-pc-windows-msvc |
FreeBSD | x86_64-unknown-freebsd |
Android | i686-linux-android |
The platforms in tier 2 are more vague, but include:
- untested variations of the platforms above,
- Redox OS,
- and BSDs such as OpenBSD, NetBSD & DragonFlyBSD.
Utility compatibility per platform
Not all utils work on every platform. For instance, chgrp
is not supported on
Windows, because Windows does not have the concept of groups. Below is a full table
detailing which utilities are supported for the tier 1 platforms.
Note that for some utilities, not all functionality is supported on each platform. This is documented per utility.
util | Linux | macOS | Windows | FreeBSD | Android |
---|---|---|---|---|---|
arch | ✓ | ✓ | ✓ | ✓ | ✓ |
b2sum | ✓ | ✓ | ✓ | ✓ | ✓ |
b3sum | ✓ | ✓ | ✓ | ✓ | ✓ |
base32 | ✓ | ✓ | ✓ | ✓ | ✓ |
base64 | ✓ | ✓ | ✓ | ✓ | ✓ |
basename | ✓ | ✓ | ✓ | ✓ | ✓ |
basenc | ✓ | ✓ | ✓ | ✓ | ✓ |
cat | ✓ | ✓ | ✓ | ✓ | ✓ |
chcon | ✓ | ||||
chgrp | ✓ | ✓ | ✓ | ✓ | |
chmod | ✓ | ✓ | ✓ | ✓ | |
chown | ✓ | ✓ | ✓ | ✓ | |
chroot | ✓ | ✓ | ✓ | ✓ | |
cksum | ✓ | ✓ | ✓ | ✓ | ✓ |
comm | ✓ | ✓ | ✓ | ✓ | ✓ |
cp | ✓ | ✓ | ✓ | ✓ | ✓ |
csplit | ✓ | ✓ | ✓ | ✓ | ✓ |
cut | ✓ | ✓ | ✓ | ✓ | ✓ |
date | ✓ | ✓ | ✓ | ✓ | ✓ |
dd | ✓ | ✓ | ✓ | ✓ | ✓ |
df | ✓ | ✓ | ✓ | ✓ | ✓ |
dir | ✓ | ✓ | ✓ | ✓ | ✓ |
dircolors | ✓ | ✓ | ✓ | ✓ | ✓ |
dirname | ✓ | ✓ | ✓ | ✓ | ✓ |
du | ✓ | ✓ | ✓ | ✓ | ✓ |
echo | ✓ | ✓ | ✓ | ✓ | ✓ |
env | ✓ | ✓ | ✓ | ✓ | ✓ |
expand | ✓ | ✓ | ✓ | ✓ | ✓ |
expr | ✓ | ✓ | ✓ | ✓ | ✓ |
factor | ✓ | ✓ | ✓ | ✓ | ✓ |
false | ✓ | ✓ | ✓ | ✓ | ✓ |
fmt | ✓ | ✓ | ✓ | ✓ | ✓ |
fold | ✓ | ✓ | ✓ | ✓ | ✓ |
groups | ✓ | ✓ | ✓ | ✓ | |
hashsum | ✓ | ✓ | ✓ | ✓ | ✓ |
head | ✓ | ✓ | ✓ | ✓ | ✓ |
hostid | ✓ | ✓ | ✓ | ||
hostname | ✓ | ✓ | ✓ | ✓ | ✓ |
id | ✓ | ✓ | ✓ | ✓ | |
install | ✓ | ✓ | ✓ | ✓ | |
join | ✓ | ✓ | ✓ | ✓ | ✓ |
kill | ✓ | ✓ | ✓ | ✓ | |
link | ✓ | ✓ | ✓ | ✓ | ✓ |
ln | ✓ | ✓ | ✓ | ✓ | ✓ |
logname | ✓ | ✓ | ✓ | ✓ | |
ls | ✓ | ✓ | ✓ | ✓ | ✓ |
md5sum | ✓ | ✓ | ✓ | ✓ | ✓ |
mkdir | ✓ | ✓ | ✓ | ✓ | ✓ |
mkfifo | ✓ | ✓ | ✓ | ✓ | |
mknod | ✓ | ✓ | ✓ | ✓ | |
mktemp | ✓ | ✓ | ✓ | ✓ | ✓ |
more | ✓ | ✓ | ✓ | ✓ | ✓ |
mv | ✓ | ✓ | ✓ | ✓ | ✓ |
nice | ✓ | ✓ | ✓ | ✓ | |
nl | ✓ | ✓ | ✓ | ✓ | ✓ |
nohup | ✓ | ✓ | ✓ | ✓ | |
nproc | ✓ | ✓ | ✓ | ✓ | ✓ |
numfmt | ✓ | ✓ | ✓ | ✓ | ✓ |
od | ✓ | ✓ | ✓ | ✓ | ✓ |
paste | ✓ | ✓ | ✓ | ✓ | ✓ |
pathchk | ✓ | ✓ | ✓ | ✓ | |
pinky | ✓ | ✓ | ✓ | ||
pr | ✓ | ✓ | ✓ | ✓ | ✓ |
printenv | ✓ | ✓ | ✓ | ✓ | ✓ |
printf | ✓ | ✓ | ✓ | ✓ | ✓ |
ptx | ✓ | ✓ | ✓ | ✓ | ✓ |
pwd | ✓ | ✓ | ✓ | ✓ | ✓ |
readlink | ✓ | ✓ | ✓ | ✓ | ✓ |
realpath | ✓ | ✓ | ✓ | ✓ | ✓ |
rm | ✓ | ✓ | ✓ | ✓ | ✓ |
rmdir | ✓ | ✓ | ✓ | ✓ | ✓ |
runcon | ✓ | ||||
seq | ✓ | ✓ | ✓ | ✓ | ✓ |
sha1sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sha224sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sha256sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sha3-224sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sha3-256sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sha3-384sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sha3-512sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sha384sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sha3sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sha512sum | ✓ | ✓ | ✓ | ✓ | ✓ |
shake128sum | ✓ | ✓ | ✓ | ✓ | ✓ |
shake256sum | ✓ | ✓ | ✓ | ✓ | ✓ |
shred | ✓ | ✓ | ✓ | ✓ | ✓ |
shuf | ✓ | ✓ | ✓ | ✓ | ✓ |
sleep | ✓ | ✓ | ✓ | ✓ | ✓ |
sort | ✓ | ✓ | ✓ | ✓ | ✓ |
split | ✓ | ✓ | ✓ | ✓ | ✓ |
stat | ✓ | ✓ | ✓ | ✓ | |
stdbuf | ✓ | ✓ | ✓ | ||
stty | ✓ | ✓ | ✓ | ✓ | |
sum | ✓ | ✓ | ✓ | ✓ | ✓ |
sync | ✓ | ✓ | ✓ | ✓ | ✓ |
tac | ✓ | ✓ | ✓ | ✓ | ✓ |
tail | ✓ | ✓ | ✓ | ✓ | ✓ |
tee | ✓ | ✓ | ✓ | ✓ | ✓ |
test | ✓ | ✓ | ✓ | ✓ | ✓ |
timeout | ✓ | ✓ | ✓ | ✓ | |
touch | ✓ | ✓ | ✓ | ✓ | ✓ |
tr | ✓ | ✓ | ✓ | ✓ | ✓ |
true | ✓ | ✓ | ✓ | ✓ | ✓ |
truncate | ✓ | ✓ | ✓ | ✓ | ✓ |
tsort | ✓ | ✓ | ✓ | ✓ | ✓ |
tty | ✓ | ✓ | ✓ | ✓ | |
uname | ✓ | ✓ | ✓ | ✓ | ✓ |
unexpand | ✓ | ✓ | ✓ | ✓ | ✓ |
uniq | ✓ | ✓ | ✓ | ✓ | ✓ |
unlink | ✓ | ✓ | ✓ | ✓ | ✓ |
uptime | ✓ | ✓ | ✓ | ||
users | ✓ | ✓ | ✓ | ||
vdir | ✓ | ✓ | ✓ | ✓ | ✓ |
wc | ✓ | ✓ | ✓ | ✓ | ✓ |
who | ✓ | ✓ | ✓ | ||
whoami | ✓ | ✓ | ✓ | ✓ | ✓ |
yes | ✓ | ✓ | ✓ | ✓ | ✓ |