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 systemTested targets
Linuxx86_64-unknown-linux-gnu
x86_64-unknown-linux-musl
arm-unknown-linux-gnueabihf
i686-unknown-linux-gnu
aarch64-unknown-linux-gnu
macOSx86_64-apple-darwin
Windowsi686-pc-windows-msvc
x86_64-pc-windows-gnu
x86_64-pc-windows-msvc
FreeBSDx86_64-unknown-freebsd
Androidi686-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.

utilLinuxmacOSWindowsFreeBSDAndroid
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