Show HN: ut – Rust based CLI utilities for devs and IT (github.com)
I find myself reaching for tools like it-tools.tech or other random sites every now and then during development or debugging. So, I built a toolkit with a sane and simple CLI interface for most of those tools.
For the curious and lazy, at the moment, ut has tools for,
- Encoding: base64 (encode, decode), url (encode, decode)
- Hashing: md5, sha1, sha224, sha256, sha384, sha512
- Data Generation: uuid (v1, v3, v4, v5), token, lorem, random
- Text Processing: case (lower, upper, camel, title, constant, header, sentence, snake), pretty-print, diff
- Development Tools: calc, json (builder), regex, datetime
- Web & Network: http (status), serve, qr
- Color & Design: color (convert)
- Reference: unicode
For full disclosure, parts of the toolkit were built with Claude Code (I wanted to use this as an opportunity to play with it more). Feel free to open feature requests and/or contribute.
25 comments
[ 3.0 ms ] story [ 40.6 ms ] threadAlthough philosophically I prefer the unix approach of "do one thing and do it well", I really admire this tool. I think it might be the fact that the one thing this does well is curating a set of functions for a particular profile of developer. My story is someone doing web focused full stack development?
It might be worth doing a survey of your users to see what they use ut for and what areas you should focus on next.
I also have the exact same tools but written in Go. Rust would be a nice upgrade (lower footprint) but to keep them all in the same binary is a bit silly.
I've seen a few tools do things like this recently, it's a pretty interesting pattern. I believe there's tooling in the Python/Rust world that makes compiling the different binary wheels relatively easy using GitHub Actions.
``` python -c "import base64; print(base64.b64encode('$INPUT_STRING'.encode('utf-8')).decode('utf-8'))" ```
https://github.com/demoray/retry-cli
https://github.com/rye/eb
Has the creator thought about the definition of "done"? Will it grow indefinitely like a katamari ball?
[1]: https://en.wikipedia.org/wiki/Katamari
But I would probably argue that including HTTP functionality is going too far. Why? Because there are already amazing tools dedicated to this already. On the client side, see `xh` [1]. On the server side, see `miniserve` [2]. Both have approximately 7K stars on GitHub.
It seems wiser to let specialized projects focus on a particular functional area; this is better for users and less work for maintainers.
[1]: https://github.com/ducaale/xh
[2]: https://github.com/svenstaro/miniserve
1. Input must be valid UTF-8. 2. stdin is read to EOF instead of being read incrementally
Neither are ideal and can make ut unfit for a fair few use cases.
In this title you tell exactly zero information about what your tools actually do, but somehow find it important to mention the language they're written in.
The new versions 7 and 8 are really a must these days, especially v7.
- the Web & Network section expanded: the copyparty features (github.com/9001/copyparty) and curlie (github.com/rs/curlie).
- compress/decompress features with password: it doesn't need to use the best compress algorithm, gzip is good enough.
I am seeing the list of dependencies, and even without looking at the transitive ones, I am sure you didn't review any of those, nor will properly maintain that huge list.
That's a supply chain ticking bomb in my book.
I like Rust, but most projects look like kindergarten collage with no regards to security.