When building new functionality that is almost exclusively used from a command line interface (think a small utility program), do you all build a binary crate, or a library crate with a bin.rs?
I've always been a bit unsure what to do, but recently I've started to think that a library crate is the better choice: building a library plus a binary to provide the user interface promotes good software design, reusability, and testability. I also thought that being able to publish something on crates.io was an advantage (for example, your code can benefit from crater testing), but this feels a little weird to me.
So I'm wondering what you all think? Do you tend toward, or prefer, binary crates or library crates?