projects/utils-std
utils-std is a collection of commonly available unix tools (cat, cp, rm, mkdir, …). POSIX is used as a guide, but current Unix systems are the biggest inspiration and compatibility with portable scripts is intended.
Design differences
- Whenever possible programs prefix their messages with their name, then error messages contain "
error:", and warning messages contain "warning:". This allows to more easily find what went wrong in logs. - When the output is structured data, a terminal gets human-oriented output, others like piped programs get slightly more machine-oriented output.
-
As the
utmpandwtmpfiles are considered broken by design, utilities dependent on them likewhoandlastlogwon't be implemented. Proper authentication logs shouldn't be writable into by multiple programs, some of them third-party (like SSH and Display Managers typically are). - Minimal dependencies, allowing to bootstrap utils-std without already having the utilities it implements.
- No binary blobs, no pre-generated files, even in the testsuite.
Releases
Warning! While utils-std technically can be used in production, not all the utilities are implemented. And it's also not intended to be 100% compatible with another implementation such a coreutils. As such I would currently disrecommend it in environments where the users aren't also capable of debugging shell related issues.
- From source:
utils-std-0.3.0.tar.gz(signify/minisign) changelog
utils-std is using Semantic Versioning with considering that the User-Interface is part of the interface stabilisation.
Tarball is signed with signify, you can find the key at https://distfiles.hacktivis.me/releases/signify/2026.pub.
For more information (signify implementations, key rotation / lifetime, …) see https://distfiles.hacktivis.me/releases/signify/README.html.
The command to verify the tarball looks like this: signify -V -p signify/2026.pub -x utils-std-0.3.0.tar.gz.sign -m utils-std-0.3.0.tar.gz
Tested and supported platforms
- OS
- Linux-musl, Linux-glibc, NetBSD, FreeBSD. And Haiku at best effort due to lack of CI
- CPU Architectures
- x86_64/amd64. And armv8+/aarch64, aarch64_be, riscv64 at best effort due to lack of CI
- C Compilers
- GCC, Clang, TinyCC, cproc
Similar systems should work, feel free to reports tests/bugs and volunteer on testing before releases are published.
Proprietary systems (Windows, MacOS, Oracle Solaris, …) are unsupported.
Contacts / Discussions
- IRC Channel
- #utils-std on GeekNode
- Reaching main author directly
- contact page
Tickets (bug, feature request, …)
Use the contact methods above before to confirm where your bug comes from, then you may use https://todo.sr.ht/~lanodan/utils-std (no accounts needed).
For security issues, sending me an email to contact+utils-std@hacktivis.me is the preferred way.
Contributing
Please try to use one of the contact methods shown above before doing modifications, it seriously helps on integrating your contribution and could also point you at resources if you need help. Feel free to drop me a repository or patches of your local modifications though.
Code
git clone https://anongit.hacktivis.me/git/utils-std.git (WebView)
You can then send patches or your repository URL to contact+utils-std@hacktivis.me. git send-email is highly recommended, here is a tutorial.