Skip to content

Instantly share code, notes, and snippets.

@squarism
Last active August 15, 2023 02:37
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save squarism/06a85a2f64dcf078b202c5948c8f7bbf to your computer and use it in GitHub Desktop.
Save squarism/06a85a2f64dcf078b202c5948c8f7bbf to your computer and use it in GitHub Desktop.
Modern system utility replacements (Go / Rust or even just something new)

Interesting and Modern CLI Tools

The absolute requirement is that these must be binaries that could go into /usr/bin one day. No python, ruby or js stuff. Not that dynamic languages are bad/evil, but I think system utilities should be binaries. I also think it's interesting that people are writing replacements in Go/Rust/Other that rethink some unix legacy. Replacement doesn't mean better in all cases. I just think it's an interesting time but also a good measure of what these compiled languages can handle/tackle/address. Will we see larger and more impressive CLIs? Or will the feature sets be about the same but the quality/stability/safety be better?

It's going to be reductive to explain some of these tools in one line.

  • exa - ls replacement
  • caddy - HTTP server (better than python -m SimpleHTTPServer)
  • fzf - Grep replacement, can integrate with vim
  • skim - Grep replacement, similar to fzf, see their README
  • tokei - wc -l replacement
  • aria2 - scp replacement (fast)
  • jq - json manipulator (tldr has examples)
  • rq - a more general jq, does more than JSON
  • tldr - quick documentation lookup, man replacement
  • astaxie/bat - curl replacement, nice syntax, colors. I hope it gets closer to httpie one day.
  • sharkdp/bat - The other bat. It's a cat replacement but works like a super less.
  • restic - tar replacement (sort of, it's a total backup solution which is neat)
  • lego - openssl replacement assuming you use Let's Encrypt
  • boom - ab (Apache Bench) replacement, http load generator
  • fd - replacement for find (nicer usage than find -iname *incantation*)
  • peep - interactive and dynamic less/more
  • broot - interactive du -sh, this is reductive - check it the README
  • rnr - regex batch file renamer
  • hexyl - way beyond xxd, this is a cli hex viewer with colors
  • xsv - CSV toolkit, subcommands and built-in functions
  • watchexec - file watcher

Replacing Services

  • minio - S3 compatible file server, fake S3
  • ledis - redis compatible server
  • rlite - embeeded redis (so not service), "rlite is to redis what sqlite is to sql"
  • tidb - mysql compatible drop-in

Replacing GUIs

  • toxiproxy - Causes network problems on purpose, replacement for Charlesproxy.
  • wuzz - interactive HTTP client (close to curl)
  • gopass - KeypassX replacement
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment