TomWright / dasel

Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package.
https://daseldocs.tomwright.me
MIT License
7.21k stars 137 forks source link

Compile builds with tinygo for reasonable system file sizes #406

Open coolaj86 opened 7 months ago

coolaj86 commented 7 months ago

Is your feature request related to a problem? Please describe.

It's hard to get Linux users / sysadmins on board with a "text editing" tool that weighs in a a dozen+ megabytes.

Describe the solution you'd like

Go will yield reasonable file sizes when compiled with tinygo:

(caveat: reflection isn't supported, so the default json package can't be used)

Describe alternatives you've considered

Wrapping git config in a Shell script. An ini parser written in Zig.

Additional context

It's not a thing that many web or cloud guys get, but in the sysadmin community, exorbitantly large binaries are a red flag. CLI text editors are expected to be kilobytes in size.

TomWright commented 6 months ago

(caveat: reflection isn't supported, so the default json package can't be used)

This caveat causes quite the problem - A large majority of code in dasel uses reflection