Remix.run Logo
sionisrecur 2 days ago

The "Juicy Main" looks like a very nice QoL feature. Gets rid of all the boilerplate for allocators and argv.

mihaelm 2 days ago | parent | next [-]

It's the dark horse of this release as CLI parsing can also be more easily built on top of it. There's a couple of proposals floating around now, so I hope we get something soon-ish (maybe in 0.18 since a short cyle is planned for 0.17).

fredyr 2 days ago | parent [-]

This sounds interesting to me - could you elaborate a little on what things are in those proposals?

mihaelm 2 days ago | parent [-]

Sure, this is the issue tracking the work: https://codeberg.org/ziglang/zig/issues/30677

The idea is to offer some kind of CLI parsing in the std. It says minimal, but the discussion also veers into some more advanced options.

The discussion resulted in two PRs (that I know of):

- Type-driven: https://codeberg.org/ziglang/zig/issues/30677

@dotcarmen extracted it into a package (https://codeberg.org/dotcarmen/clip) so people could more easily try it out.

- Composition-based: https://codeberg.org/ziglang/zig/pulls/31620

If you're familiar with Rust's clap, it's a bit like derive vs builder API.

You can also see how each approach would look in practice if you inspect the diff for the "tools" directory on the PRs.

fredyr 2 days ago | parent | next [-]

Thanks!

anttiharju 2 days ago | parent | prev [-]

clap's derive is so nice

portly 2 days ago | parent | prev [-]

Do I get it right that this is everything you need for a typical CLI tool?

nesarkvechnep 2 days ago | parent [-]

You got that right.

portly 2 days ago | parent [-]

That's clean.