A collection of coreutils cat clones for practise in various languages

root

This is a repository of cat (from coreutils) clones implemented in a variety of different languages.

Different implementations have different levels of features, and a different level of ambition, ranging from a very simple file reader to readers with beautiful (and optional) inbuilt pagers and colorisation (a la bat).

Feel free to open an issue and link your fork if you have an implementation to sumbit.

The calling conventions for the programs is not entirely cat compatible, but should be universal across this whole suite.

[command] (--fancy) [files]

The --fancy flag is only available on some implementations, and gives nicer output.

Here's what's required to build every clone. If you want to build one specifically, you only need a subset of these:

  • Linux (or WSL, BSD or other good unix-likes. cat-js doesn't work on any OS that requires signed executables nothing works unless you have the dependencies and can run fish-shell syntaxed scripts)
  • coreutils
  • binutils
  • GNU Make
  • GCC
  • GHC
  • Cargo
  • pnpm
  • cython
  • python3
  • pkg-config
  • darcs
  • graphviz dot
  • a web-browser or other SVG viewer to be used with xdg-open

To build everything automatically, just make all, there are also tons of sub-recipes and a clean recipe Eventually, I will write a test recipe but havent bothered yet. If you are insane enough to daily-drive these, add bin/ to your path.