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