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. This way you don't end up with context-less messages.
- Error messages contain "
error:
", warning messages contain "warning:
". To allow to easily find what went wrong in logs. -
When the output is structured data, a terminal gets human-oriented output, others like piped programs get machine-oriented output (no padding, line separation, CSV, JSON, …).
Prior art: mostls(1)
implementations, i3/sway, FreeBSD utils vialibxo
, … -
As the
utmp
andwtmp
files are considered broken by design, utilities dependent on them likewho
andlastlog
won'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, even in the testsuite. Output of generated code is itself auditable.
Releases
Warning! While utils-std can be used in production, not all the utilities are implemented which doesn't makes it a full replacement to other projects like coreutils or sbase yet.
- From source:
utils-std-0.0.1.tar.gz
(signify/minisign) changelog
utils-std is using Semantic Versioning with considering that the User-Interface is part of the interface stabilisation.
Tarball signature check:
signify (portable version maintained by Adrian Perez) is the recommended tool to use.
You can find the key at /releases/signify/2024.pub,
you can find more info about how I manage the keyset in: Bootstrapping signify for my assets.
The command to verify the tarball looks like this: signify -V -p signify/2024.pub -x utils-std-0.0.1.tar.gz.sign -m utils-std-0.0.1.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, armv8+/aarch64, riscv64
- 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.