Releases: jiacai2050/zigcli
Releases · jiacai2050/zigcli
v0.5.0
v0.5.0 (2026-03-22)
Breaking Changes
- build: package consumers must now import the single
zigcliroot module instead of adding
separatesimargs,pretty-table, andgitignoremodules, and the struct-based argument parser
is now namedstructargs- Old:
exe.root_module.addImport("simargs", zigcli.module("simargs"));exe.root_module.addImport("pretty-table", zigcli.module("pretty-table"));exe.root_module.addImport("gitignore", zigcli.module("gitignore"));
- New:
exe.root_module.addImport("zigcli", zigcli.module("zigcli"));- Use
zigcli.structargsinstead ofzigcli.simargs
- Old:
New Programs
- pretty-csv: Pretty-print CSV/TSV files as aligned tables
- Auto-fits table width to terminal, truncates with
… - Three border styles:
ascii,box,dos - Transpose mode (
-t): show each record as vertical key-value block - Column selection (
-c 1,3,5): display only specific columns - Row separators (
--row-separator) and right-aligned selected columns (-r 2,4) - Configurable delimiter, padding, and max input size
- Auto-fits table width to terminal, truncates with
Improvements
- build: consolidate exported packages behind a single
zigcliroot module inlib.zig - build: run
.github/build-release.shtarget builds in parallel with per-target logs - install: make
docs/static/install.shinstall all packaged binaries by default - zigcli: add
csvpackage for parsing delimited text into rows and fields- Standard comma-separated parsing now follows RFC 4180 record and quoted-field rules
- Supports embedded newlines and doubled-quote unescaping in quoted fields
- Returns
error.UnclosedQuotedFieldfor unterminated quoted records
- zigcli: add shared
termmodule for ANSI colors and terminal capability helpers - zigcli: add shared
term.Stylefor reusable ANSI-styled text output - zigcli: add
term.stdoutWidth()as a convenience wrapper for stdout terminal-width detection - structargs:
print_help_on_errornow prints the subcommand-specific help context for subcommand parse failures - pretty-table:
Table(N).Ownedruntime row helper with string shorthand and Cell-level controlTable(N)andTable(N).Owned: optional transpose modeRuntimeTable: runtime column count with footer rows, header/footer cell setters, row separators, per-column alignment,"{f}"formatting, optional cell truncation, and UTF-8-safe truncation boundaries- Windows targets skip POSIX terminal-width probing during cross-compilation
Bug Fixes
- structargs: Fixed memory leak when parse failed
Documentation
- Added
gitignorepackage docs - Added
termpackage docs - Updated
pretty-tableandstructargsdocs for Zig 0.15 API
What's Changed
- feat: add runtime table builder and pretty-csv utility by @jiacai2050 in #73
- simargs: print help to stderr on parse error by @Copilot in #74
- refactor: consolidate packages and add shared terminal module by @jiacai2050 in #75
- refactor(build): reorganize project structure by @jiacai2050 in #76
- feat(csv): add standard compliant CSV parser by @jiacai2050 in #77
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Quick Install (recommended)
curl -fsSL https://zigcli.liujiacai.net/install.sh | shThere are some options to configure this script, see: https://zigcli.liujiacai.net/install/
What's Changed
- feat: add gitignore module by @jiacai2050 in #53
- Fix a integer overflow error caused by the small zstd decompression buffer size by @qilme in #54
- fix: treat slash as invalid rules by @jiacai2050 in #55
- Add newline to printVersion by @LDprg in #56
- feat(gitignore): remove libc fnmatch dependency and implement pure Zig glob by @jiacai2050 in #59
- feat(gitignore): Support recursive .gitignore filtering in tree/loc by @jiacai2050 in #61
- refactor(simargs): improve naming consistency for internal types by @jiacai2050 in #62
- pretty-table: add Cell struct with per-cell styling and horizontal span by @Copilot in #63
- Add cowsay command by @Copilot in #65
- Add
progressbinary: port of https://github.com/Xfennec/progress (Linux + macOS) by @Copilot in #66 - Add fastfetch binary: system information fetcher by @Copilot in #69
- feat: fastfetch support color by @jiacai2050 in #71
- refactor(bin): rename binary to zfetch and modularize by @jiacai2050 in #72
New Contributors
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
- Fix integer overflow error for blanks by @eltNEG in #51
- feat: adopt with zig 0.15.1 by @jiacai2050 in #50
New Contributors
Full Changelog: v0.2.3...v0.3.0
v0.2.3
For Chinese users, you can goto gitee to download prebuilt binaries
Bugfix 🐛
- Load local ca bundle for zigfetch
- Fix cross compile for zigfetch
Use as library
.zigcli = .{
.url = "https://github.com/jiacai2050/zigcli/archive/refs/tags/v0.2.3.tar.gz",
.hash = "zigcli-0.2.3-ORC7jGKRAgAYW8y8hO3S4v2DsqbnyOrgximDYNgfB_Bw",
},
What's Changed
- fix build release by @jiacai2050 in #48
Full Changelog: v0.2.2...v0.2.3
v0.2.2
What's Changed
- improvement by @phanen in #45
- chore(ci): build zigfetch on all linux architects by @jiacai2050 in #47
New Contributors
Full Changelog: v0.2.1...v0.2.2
v0.2.1
New features
- Use new hash format introduced in 0.14 for dependencies.
- Zigfetch support the new hash format
Import like this:
.dependencies = .{
.zigcli = .{
.url = "https://github.com/jiacai2050/zigcli/archive/refs/tags/v0.2.1.tar.gz",
.hash = "zigcli-0.2.1-ORC7jJiMAgBaLKuhtak-Q62A1tJmMJDnBhsnLvsDw7Tf",
},
},
v0.2.0
Tested with Zig 0.14.0
.zigcli = .{
.url = "https://github.com/jiacai2050/zigcli/archive/refs/tags/v0.2.0.tar.gz",
.hash = "1220d88560a67e3044f6358f03b0aa3102a53134f745c69d7e0cefac21e7febbd8b5",
}v0.1.5
Last version for zig 0.13.
Features
- Add new command: timeout
Improvement
- zigfetch will convert git deps to http when possible
- zigfetch will skip download dependency when it's already in
{global_cache}/p/{hash}.
Full Changelog
v0.1.4
Features
- zigfetch: support git dependencies
git+http(s)
Fixes
- zigfetch: Don't delete ignore files for local path dependency.