Introducing cate, a cat in Rust.

The reason the source is complex is that the goals of the uutils coreutils binaries is (with certain compromises for cross-platform and respecting copyright) feature-parity with the ubiquitous GNU coreutils.

Many people take issue with GNU cat design choices, and there are lots of good criticisms, so thumbs up for creating your own vision of cat.

If you'll allow, I'll take an aside to explain the thinking behind the uutils design choice better.

We want people to trust that if we say uutils cat is "feature complete", that they can use it as a rust-based drop-in replacement confidently anywhere they could use C-based cat and expect (with certain caveats such as performance, floating point behavior on different platforms) the same results - regardless of whether some script on their system uses less popular options (like cat -bEs)

cat is one of our few binaries for which we have complete and passing integration tests for feature parity. So people could use it as such a drop-in replacement today.

/r/rust Thread Parent Link - github.com