Skip to content

ZigBase 0.4.1

Choose a tag to compare

@github-actions github-actions released this 19 Jun 19:11
· 1132 commits to main since this release
Immutable release. Only release title and notes can be modified.

Added

  • zigbase --version (and the version subcommand) prints build provenance —
    the build.zig.zon version, the git commit, the build mode, the target triple,
    and the Zig version. Implemented at the framework level, so every binary built
    on ZigBase (including the examples and downstream apps) inherits it.
  • text.pattern is now enforced on record writes via a pure-Zig, linear-time
    (DoS-safe) Thompson-NFA matcher (src/regex.zig). Matching is unanchored (substring);
    anchor with ^…$ for a full-string match. Supported syntax: literals, . (any codepoint
    except \n), anchors ^/$, character classes […]/[^…]/ranges, predefined classes
    \d \D \w \W \s \S (ASCII), escapes \t \n \r \f \v and \-escaped metacharacters,
    alternation |, groups (…)/(?:…), and quantifiers * + ? {m} {m,} {m,n}. Patterns
    are validated when a collection is saved (a bad regex is a 400 field error), and at build
    time (@compileError) for comptime schema literals.
  • date field min/max are now enforced on record writes, with date normalization
    (src/datetime.zig) so mixed formats (e.g. 2026-06-10 08:00:00 vs
    2026-06-10T08:00:00Z) compare correctly. Malformed or out-of-range date values are
    rejected with 400 (validation_date). Bounds are validated at collection-save time
    and at build time (@compileError) for comptime schema literals.

Changed

  • Prebuilt server binaries are now stripped — release builds drop debug
    symbols, cutting each @zigbase/server-<platform> package and GitHub-release
    tarball from ~24 MiB to ~7 MiB (about 73% smaller) with no API or behavior
    change. npm install @zigbase/server and npx @zigbase/typegen download
    much less.