Live data from Hacker News

Show HN: Crust – A CLI framework for TypeScript and Bun

github.com

41–48 of 48 posts

Re: Show HN: Crust – A CLI framework for TypeScript and Bun

#41

[flagged]

The binary size is my main hesitation with Bun-based CLIs too. For comparison, a typical Go CLI with cobra compiles to ~10MB statically linked, and you get cross-compilation for free. The plugin system and compile-time validation here are genuinely nice though — Go's CLI ecosystem doesn't have anything equivalent to that.

Re: Show HN: Crust – A CLI framework for TypeScript and Bun

#42

I was looking for something like this. Does the help plugin not support color? Looks like the spacing is messed up too. I just converted my app to use it and its coming out like ``` COMMANDS: export-schemaExport table definitions from existing database to YAML export-dataExport table data in CSV format import-dataImport table data from CSV file schema-sqlConvert YAML schema back to MySQL export-usersExport users in Y…

I will add color support for help plugin later. open a issue if you found bugs or improvement

Re: Show HN: Crust – A CLI framework for TypeScript and Bun

#46
post #41

[flagged]

The binary size is my main hesitation with Bun-based CLIs too. For comparison, a typical Go CLI with cobra compiles to ~10MB statically linked, and you get cross-compilation for free. The plugin system and compile-time validation here are genuinely nice though — Go's CLI ecosystem doesn't have anything equivalent to that.

[flagged]

Re: Show HN: Crust – A CLI framework for TypeScript and Bun

#47

Earlier quoted context omitted.

I will say that this doesn't seem to be how semver is used in the wild, which I would argue is more important. I personally didn't know about this rule. Tons of Rust projects follow semver don't follow it either, and just stay on 0.x.y forever.

How is it used in the wild, in your experience? Have you observed projects following some alternate set of rules? I thought projects that stay on 0.x.y forever mostly do it because it means they're allowed to break things. Also, since 0.x.y means "anything goes", projects can introduce their own conventions within that range without violating the spec. I know that some package managers (including Cargo and npm) confu…

Yes, that was what I was referring to, although I thought the reason of staying at 0.y.z was more of a cultural one. v0, at least to me, implies that the API may change arbitrarily and quickly, but makes no assertions about the actual versioning scheme itself.

There's a website making fun of it: https://0ver.org/

Re: Show HN: Crust – A CLI framework for TypeScript and Bun

#48
nice work. TS + Bun for CLI is the right bet — the DX is so much better than the traditional node + commander setup. curious about your approach to type-safe argument parsing. we've been exploring similar patterns and found that deriving types from the schema definition (instead of manually typing args) eliminates a whole class of bugs.
Post reply on HN