Skip to content

Releases: jiacai2050/zigcli

v0.5.0

22 Mar 13:53
8c7d27e

Choose a tag to compare

v0.5.0 (2026-03-22)

Breaking Changes

  • build: package consumers must now import the single zigcli root module instead of adding
    separate simargs, pretty-table, and gitignore modules, and the struct-based argument parser
    is now named structargs
    • 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.structargs instead of zigcli.simargs

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

Improvements

  • build: consolidate exported packages behind a single zigcli root module in lib.zig
  • build: run .github/build-release.sh target builds in parallel with per-target logs
  • install: make docs/static/install.sh install all packaged binaries by default
  • zigcli: add csv package 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.UnclosedQuotedField for unterminated quoted records
  • zigcli: add shared term module for ANSI colors and terminal capability helpers
  • zigcli: add shared term.Style for reusable ANSI-styled text output
  • zigcli: add term.stdoutWidth() as a convenience wrapper for stdout terminal-width detection
  • structargs: print_help_on_error now prints the subcommand-specific help context for subcommand parse failures
  • pretty-table: Table(N).Owned runtime row helper with string shorthand and Cell-level control
    • Table(N) and Table(N).Owned: optional transpose mode
    • RuntimeTable: 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 gitignore package docs
  • Added term package docs
  • Updated pretty-table and structargs docs 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

18 Mar 12:22
c589618

Choose a tag to compare

Quick Install (recommended)

curl -fsSL https://zigcli.liujiacai.net/install.sh | sh

There 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 progress binary: 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

27 Sep 06:25
82fae37

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.2.3...v0.3.0

v0.2.3

08 May 13:46
7ad21d9

Choose a tag to compare

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

Full Changelog: v0.2.2...v0.2.3

v0.2.2

07 May 12:58
720b2c0

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.2.1...v0.2.2

v0.2.1

23 Mar 03:30
761584f

Choose a tag to compare

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

09 Mar 09:02
737e03c

Choose a tag to compare

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

23 Jan 15:17
962e9a2

Choose a tag to compare

Last version for zig 0.13.

Features

Improvement

Full Changelog

v0.1.4...v0.1.5

v0.1.4

03 Jan 01:05
ef089b6

Choose a tag to compare

Features

  • zigfetch: support git dependencies git+http(s)

Fixes

  • zigfetch: Don't delete ignore files for local path dependency.

v0.1.3

01 Jan 11:41
134269c

Choose a tag to compare

Features