known-folders
zig-clap
Our great sponsors
known-folders | zig-clap | |
---|---|---|
1 | 3 | |
204 | 744 | |
5.4% | - | |
5.6 | 6.4 | |
about 1 month ago | 4 days ago | |
Zig | Zig | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
known-folders
-
Allow download in build flake's build phase.
zig-overlay.url = "github:mitchellh/zig-overlay"; zig-overlay.inputs.nixpkgs.follows = "nixpkgs"; gitignore.url = "github:hercules-ci/gitignore.nix"; gitignore.inputs.nixpkgs.follows = "nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; known-folders.url = "https://github.com/ziglibs/known-folders/archive/53fe3b676f32e59d46f4fd201d7ab200e5f6cb98.tar.gz"; known-folders.flake = false; tres.url = "https://github.com/ziglibs/tres/archive/d8b0c24a945da02fffdae731edd1903c6889e73c.tar.gz"; tres.flake = false; diffz.url = "https://github.com/ziglibs/diffz/archive/efc91679b000a2d7f86fb40930f0a95a0d349bff.tar.gz"; diffz.flake = false;
zig-clap
-
After a day of programming in Zig
Zig and Rust both promote explicit error handling, however their mechanisms are different. Rust uses Result enums, while Zig uses a (global) error set type (though similar to an enum) and error propagation. Similarly, Rust uses the Option enum for optional types, while Zig uses a type modifier (?T). Both offer modern, syntactic sugar to handle those (call()? and if let Some(value) = optional {} in Rust, try call() and if (optional) |value| {} in Zig). Since Rust uses the standard library to implement error handling and options, users have the possibility to extend those systems which is quite powerful. However, I like the approach Zig takes in providing those things as language features. While their approach fits well into the C universe, I dislike that there is no pragmatic way to add more context to an error (but well, no allocations). Libraries like [clap](https://github.com/Hejsil/zig-clap) solve this by implementing a diagnostics mechanism.
-
Is it too early to use Zig for CLI tooling ideas?
It's somewhat early, but there are libraries like https://github.com/Hejsil/zig-clap that can make writing CLIs a bit easier.
-
Docco for printing, getting input, cmdline args?
Command line args: std.process or the zig-clap library
What are some alternatives?
zig-range - A range function to loop over an index without an extra variable.
zig-args - Simple-to-use argument parser with struct-based config
protozig - The protozig(uana), or protocol buffers implementation in Zig
mach-gpu-dawn - Google's Dawn WebGPU implementation, cross-compiled with Zig into a single static library
zigimg - Zig library for reading and writing different image formats
zig-win32 - Bindings for win32, with and without WIN32_LEAN_AND_MEAN
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
zig-dns - Experimental DNS library implemented in zig
zig-rocca-s - An implementation of the ROCCA-S encryption scheme.
comptime_hash_map - A statically initiated HashMap
zls - A Zig language server supporting Zig developers with features like autocomplete and goto definition