{"id":51831127,"url":"https://github.com/zaxified/zig-libs","last_synced_at":"2026-07-22T15:04:21.828Z","repository":{"id":370672681,"uuid":"1296072189","full_name":"zaxified/zig-libs","owner":"zaxified","description":"Foundational Zig 0.16 modules — RFC-complete, 100% pure-Zig (no C/libc/external deps). HTTP/1.1+2, DNS, SNMP v1/v2c/v3, MQTT, CoAP, JWT/OIDC, ACME, WireGuard, crypto, and more.","archived":false,"fork":false,"pushed_at":"2026-07-10T06:25:38.000Z","size":2243,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-10T08:06:40.122Z","etag":null,"topics":["acme","coap","dns","http2","jwt","mqtt","networking","protocols","pure-zig","rfc","snmp","wireguard","zero-dependency","zig","zig-lang","zig-library","zig-package","ziglang"],"latest_commit_sha":null,"homepage":null,"language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zaxified.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-10T05:07:23.000Z","updated_at":"2026-07-10T06:24:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zaxified/zig-libs","commit_stats":null,"previous_names":["zaxified/zig-libs"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zaxified/zig-libs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaxified%2Fzig-libs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaxified%2Fzig-libs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaxified%2Fzig-libs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaxified%2Fzig-libs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zaxified","download_url":"https://codeload.github.com/zaxified/zig-libs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zaxified%2Fzig-libs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35766436,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-22T02:00:06.236Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["acme","coap","dns","http2","jwt","mqtt","networking","protocols","pure-zig","rfc","snmp","wireguard","zero-dependency","zig","zig-lang","zig-library","zig-package","ziglang"],"created_at":"2026-07-22T15:04:20.889Z","updated_at":"2026-07-22T15:04:21.816Z","avatar_url":"https://github.com/zaxified.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zig-libs\n\n[![CI](https://github.com/zaxified/zig-libs/actions/workflows/ci.yml/badge.svg)](https://github.com/zaxified/zig-libs/actions/workflows/ci.yml)\n\nA curated collection of **foundational Zig modules** — performance-minded, universal where\npossible, each modeled after a proven implementation in another language rather than invented from\nscratch.\n\nNot a dumping ground: ship **solid, not many**. Every member is a foundational,\ncross-project-reusable capability — a production-grade implementation of a protocol/format/algorithm,\nor a fill for a genuine gap in the Zig ecosystem. zig-libs is the canonical home for these; the\nauthors' other projects depend on it, not the reverse.\n\n**Status:** 77 modules · 1844 tests (Zig 0.16, green in Debug + ReleaseFast) · **MIT** (see `LICENSE`;\nthird-party-derived wire formats \u0026 required attributions in `NOTICE`).\n\n## Using a module\n\n- **Local path (dev, no tags/push):** in the consumer's `build.zig.zon`,\n  `.zig_libs = .{ .path = \"../zig-libs\" }`, then in `build.zig`\n  `exe.root_module.addImport(\"http\", b.dependency(\"zig_libs\", .{}).module(\"http\"));`\n- **Fetch:** `zig fetch --save git+https://github.com/.../zig-libs` then the same `dependency().module(...)`.\n  (`zig fetch` can't target a subdirectory — ziglang/zig#23012 — so the whole repo is one package;\n  you still import only the module you name. Unused modules aren't compiled.)\n\n## Build\n\n```\nzig build test           # run all module tests\nzig build test-\u003cname\u003e    # run one module's tests\n```\n\n## Layout \u0026 conventions\n\n```\nbuild.zig      # single root build — registers every module by name + a test step each\nbuild.zig.zon  # one package manifest for the whole collection\nCONVENTIONS.md # naming + `meta` tag vocabulary + provenance/SPDX rules\nmodules/\u003cname\u003e/src/root.zig  # `// SPDX-License-Identifier: MIT`, `pub const meta`, API, tests\nmodules/\u003cname\u003e/README.md     # what it is + a Provenance line\n```\n\n`CONVENTIONS.md` has the full rules; `modules/_template/` is the starting point for a new module.\nRoadmap notes live in the \"Roadmap / not yet built\" section above and the git history.\n\n## Licensing\n\nzig-libs' own code is MIT throughout. Four modules — `icmp`, `seqmap`, `netaddr`, `dns` — descend\nfrom fping (https://github.com/schweikert/fping), which carries a non-standard Stanford\n\"BSD-with-advertising\" license, not a plain permissive one. That license affirmatively requires\nthat documentation and advertising materials for redistributions acknowledge the software was\ndeveloped by Stanford University. Redistributors of those four modules (or of zig-libs as a whole)\nmust preserve that fping attribution, reproduced in full in `NOTICE` §1.\n\n## Modules\n\nEvery module is imported by its `name` (`@import(\"http\")`); hyphenated names work too\n(`@import(\"security-headers\")`). `Deps` are sibling modules; everything else is `std`-only.\n\n### Web / HTTP \u0026 API — an internet-facing service, no reverse proxy required\n\n| Module | What it does | Platform | Deps |\n|---|---|---|---|\n| `http` | HTTP/1.1 client (TLS via `std.crypto.tls`) **and** server, hardened for direct exposure (peer addr, conn caps, size limits, slowloris timeouts, gzip, **conditional requests** ETag/If-\\* → 304/412, **request-body parsing** — `Content-Type`, urlencoded, **multipart/form-data** RFC 7578, **Server-Sent Events** encoder + incremental `flush()`, **inbound gzip** request bodies (zip-bomb-capped), **multiple Set-Cookie**, chunked-trailer capture, **`Range` / 206 Partial Content** RFC 7233 — `bytes=` parser + resolve-against-length → `Content-Range` + 206/416 response staging + `multipart/byteranges` body for multi-range requests, **content negotiation** — `Accept` / `Accept-Language` (RFC 4647) / `Accept-Encoding` parsers + `negotiate` server-offers→best-match / 406, RFC 9110 §12.5). Also speaks **HTTP/2** (bidirectional, TLS-deployable) — HPACK (RFC 7541) + framing/flow-control (RFC 9113) + a **DoS-hardened h2c server** + a **multiplexing h2 client** + an **ALPN/bring-your-own-TLS seam**. Not `std.http`. | any | netaddr |\n| `router` | REST routing — trie matcher (params/wildcards), middleware chain, groups, 404/405 | any | http |\n| `ratelimit` | Token-bucket per-client rate limit → 429 + Retry-After | any | router, http, netaddr |\n| `abuseguard` | Per-IP + global connection caps, ban/greylist, strike→ban (accept-time) | posix | http, netaddr, router |\n| `throttle` | Global concurrency limit + load-shedding → 503 | posix | router, http |\n| `security-headers` | Secure-by-default response headers (HSTS/CSP/nosniff/frame/referrer/COOP/CORP) | any | router, http |\n| `cors` | CORS preflight + header injection (secure defaults) | any | router, http |\n| `validate` | Request body/query/params validation → aggregated 400 (typed + schema + string `format`: email/uri/uuid/ip/hostname/date-time/…) + **JSON DoS caps** (depth/array/field) | any | router, http, netaddr |\n| `metrics` | Prometheus registry (counter/gauge/histogram) + `/metrics` + request middleware + **access-log writer** (combined/JSON) | posix | router, http |\n| `health` | Liveness (`/healthz`) + readiness (`/readyz`) probe middleware — 200/503 from registered dependency checks (k8s probe contract) | any | router, http |\n| `requestid` | Request/correlation-ID middleware — adopt incoming `X-Request-Id` or generate, echo on the response, expose via `current()` (composes with auth) | any | router, http |\n| `tracecontext` | **W3C Trace Context** — `traceparent`/`tracestate` parse + generate + a propagation middleware (child span per hop, `current()`) for distributed tracing | any | router, http |\n| `webhooksig` | **HMAC webhook signatures** (GitHub/Stripe style) — `sign`/`verify` (constant-time) + a middleware gating requests by `HMAC-SHA256(secret, body)`, key rotation | any | router, http |\n| `idempotency` | **Idempotency-Key** dedup of unsafe retries — a middleware + ramcache-backed `Store` replaying a key's cached response without re-running the handler | any | router, http, ramcache |\n| `resilience` | Circuit breaker + retry/backoff + timeout + **bulkhead** (concurrency limiter) for calling upstreams (generic) | posix | — |\n| `upstream` | Load-balanced upstream pool + failover — round-robin/weighted/least-conn/EWMA strategies, per-upstream breaker+bulkhead, active+passive health | any | resilience, probe |\n| `openapi` | OpenAPI 3.1 spec generated from the route table + `/openapi.json` | any | router, http |\n| `aaa-gate` | Bearer + **API-key** auth (constant-time) + audit hook + denied-request throttle | any | router, http |\n| `jwt` | JWT/JWS + **OIDC resource-server** validator (RFC 7515/7519/7517/8725) — parse + claims + verify (HS/ES/EdDSA/RSA, alg-confusion-safe) + JWKS-by-`kid` + **OIDC discovery/fetch** (cache + key-rotation) + a **`router` Bearer middleware** (RFC 6750 challenge, scope check, identity on ctx) | any | http, router |\n| `acme` | Let's Encrypt / ACME v2 (RFC 8555): HTTP-01 issuance + renewal, ES256 JWS, CSR | any | http, router |\n| `sessions` | Server-side web sessions + OWASP-hardened cookies + signed double-submit **CSRF** middleware | any | router, http, cookies, ramcache |\n| `llmclient` | Anthropic Messages API client (buffered + streaming SSE) over `http` — no third-party SDK | any | http |\n\n### Networking\n\n| Module | What it does | Platform | Deps |\n|---|---|---|---|\n| `netaddr` | IP parse/format (RFC 5952) + RFC 6724 source/dest selection + **CIDR/Prefix** ops (contains/overlaps/supernet, range↔prefix summarize) | any | — |\n| `dns` | RFC 1035 resolver — A/AAAA/PTR/CNAME/NS/MX/TXT/SOA/SRV/CAA over UDP/TCP + DoH | any | netaddr, http |\n| `netlink` | rtnetlink dumps: links / addresses / routes / neighbors | **linux** | — |\n| `wireguard` | Native WireGuard device config over genetlink — get/set device, peers, allowed-ips (retires `wg` shell-outs) | **linux** | netlink |\n| `nftables` | Typed firewall-ruleset builder → libnftables JSON for `nft -j -f -` (families/chains/rules/sets, match + verdict statements) | any (apply: linux) | — |\n| `modbus` | Modbus TCP (MBAP) + RTU (CRC-16) codec + master client — core function codes, exceptions, transport-agnostic seam | any | — |\n| `mqtt` | MQTT 3.1.1 client — all 14 control packets, QoS 0/1/2 state machine, topic-filter wildcards, transport-agnostic seam | any | — |\n| `coap` | CoAP (RFC 7252) — a full client/server stack: message codec (header/token/**delta-encoded options**/payload), `options` (registry, CoAP uint, **URI ↔ options** §6), `reliability` (CON **retransmission** §4.2 + message-ID **dedup** §4.5), `client` (URI→request + reply correlation), `server` (dispatch + piggyback/separate responses). Zero-alloc, transport-/clock-agnostic (block-wise + observe are follow-ups) | any | — |\n| `snmp` | SNMP v1/v2c — BER/ASN.1 codec + OID + all 8 PDUs + manager client (get/next/bulk/set/walk) + a **trap/notification receiver** (v1 Trap / v2c Trap / Inform → one normalized `TrapEvent` + `Dispatcher` + `ackInform` byte-faithful Response ack) + **SNMPv3** (RFC 3412 message framing + ScopedPDU, plaintext/noAuthNoPriv) + **USM** (RFC 3414) — `UsmSecurityParameters` (de)serializer + **auth**: password→key localization + HMAC-MD5-96 / HMAC-SHA-1-96 sign/verify (constant-time, RFC A.3 KAT-checked; privacy crypto in progress), transport-agnostic seam | any | — |\n| `whois` | RFC 3912 whois client — query format + referral chasing (IANA→registrar) + field extraction, transport-agnostic seam | any | — |\n| `rdap` | RDAP client (RFC 7480–7484) — JSON-over-HTTPS whois successor: query URLs, typed response model, IANA bootstrap, fetch seam | any | http, netaddr |\n| `icmp` | ICMP echo (ping) engine — v4/v6 codec, batched socket, pacing | **linux** | seqmap, netaddr |\n| `traceroute` | ICMP-echo path discovery — TTL-stepped probes, per-hop address + RTT stats, load-balanced-path aware | **linux** | icmp, netaddr, latency-stats |\n| `probe` | TCP-connect reachability prober — up/refused/timeout + RTT, fan-out with bounded concurrency, latency aggregation | any | netaddr, latency-stats |\n| `l2disco` | Layer-2 / neighbor discovery codec — LLDP (802.1AB) + CDP + ARP (RFC 826) + DHCP options (RFC 2131/2132) + MAC helper | any | netaddr |\n| `seqmap` | Fixed 65 536-slot 16-bit request/reply correlation map, O(1) | any | — |\n| `latency-stats` | Online RTT stats — min/max/mean/stddev + RFC 3550 jitter + loss % (O(1)/sample, no alloc) + an **HdrHistogram** for bounded-error percentiles (p50–p99.9) | any | — |\n| `procnet` | Linux `/proc`+`/sys` parsers — ARP/routes/TCP+UDP sockets/conntrack/process stats/device health, typed | **linux** | netaddr |\n| `rawsock` | Linux **AF_PACKET** raw-frame capture + inject — BPF filter, promiscuous mode, typed frame decode | **linux** | netaddr |\n| `stun` | STUN client (RFC 8489) — NAT reflexive-address discovery: XOR-MAPPED-ADDRESS + MESSAGE-INTEGRITY + FINGERPRINT | any | netaddr |\n| `sntp` | SNTP client (RFC 4330) — NTP packet codec + UDP query, clock offset / round-trip delay | any | — |\n| `syslog` | RFC 5424 syslog formatter + emitter, RFC 3164 legacy encoder, RFC 6587 TCP octet framing | any | — |\n\n### Data \u0026 storage\n\n| Module | What it does | Platform | Deps |\n|---|---|---|---|\n| `kv` | Crash-consistent embedded KV store (Bitcask-style log + **randomized seeded VOPR**: model-checked crash recovery across fuzzed fault schedules) | any | — |\n| `ramcache` | Bounded in-memory cache — **W-TinyLFU** admission/eviction (window+SLRU+CMS sketch) + TTL + generation invalidation | any | — |\n| `decimal` | Exact i128 fixed-point decimal (money math), float-free — with IEEE/GDA rounding modes, rescale + rounded division | any | — |\n| `jobqueue` | Durable background-job queue over `kv` — lease/retry/DLQ, per-partition FIFO under priority, scheduled visibility | posix | kv |\n| `blobstore` | Content-addressed blob store (git-object/restic style) + name-addressed + small named-record layers, crash-safe | posix | hashdigest |\n| `filestore` | DB-less durable keyed document store — one atomically-written file per record + a typed-JSON convenience layer | posix | — |\n| `dataset` | Canonical in-memory columnar-typed table — the normalization seam between data sources and consumers | any | — |\n| `tabular` | Dataset algebra (pandas/dplyr-style verbs) over `dataset` — aggregate/pivot/resample/rolling/join, fx-aware | any | dataset |\n| `jsonshape` | JSON → `dataset` reshaping — dot-path descent + typed column projection (jq-style minimal subset) | any | dataset |\n| `finstats` | Portfolio/financial statistics over `dataset` — XIRR/TWR/risk/beta/Monte-Carlo/correlation matrix | any | dataset |\n\n### Crypto\n\n| Module | What it does | Platform | Deps |\n|---|---|---|---|\n| `hashdigest` | Streaming digests — one-shot / incremental / file (EOF-read, size-0 `/proc` safe); SHA-256 convenience + a multi-algorithm layer (SHA-2/SHA-3/BLAKE2b/BLAKE3) | any | — |\n| `sealedbox` | NaCl `crypto_box_seal` — anonymous-sender X25519 public-key encryption (thin over `std.crypto`) + base64/hex key serialization | any | — |\n\n### Serialization / OS / agent\n\n| Module | What it does | Platform | Deps |\n|---|---|---|---|\n| `tar` | ustar/GNU tar reader+writer (preserves uid/gid/mtime) + gzip | any (packer: linux) | — |\n| `linkheader` | Web Linking (RFC 8288) `Link` header build + parse (rel/title/type), `pagination` (first/prev/next/last), `find(rel)` — zero-alloc | any | — |\n| `cookies` | HTTP cookies (RFC 6265) — `Cookie` request parser (`parse`/`find`) **and** `Set-Cookie` builder (`SetCookie` w/ Path/Domain/Max-Age/Expires/**Secure/HttpOnly/SameSite**, injection-guarded, SameSite=None⇒Secure) + `get`/`set` http helpers | any | http |\n| `blobmsg` | OpenWRT ubus client + blob/blobmsg wire codec | **linux** (codec itself: any) | — |\n| `mcp` | Model Context Protocol server (JSON-RPC 2.0) — tools + resources + prompts, app-state ctx | any | — |\n| `mcp-http` | MCP **Streamable HTTP** transport (2025-06-18) — `POST /mcp` → JSON-RPC response (`application/json` **or live SSE** with tool-progress streaming) / 202, as a `router` middleware over a `mcp.Server`. Optional **sessions** (`Mcp-Session-Id` + `GET /mcp` server→client SSE stream with `Last-Event-ID` resumable replay + `DELETE` teardown); built-in **Origin** (DNS-rebinding) guard, size cap, Lock seam | any | router, http, mcp |\n| `uci` | OpenWRT UCI config parser + serializer + typed model (stable round-trip) | any | — |\n| `argsafe` | Allowlist validators + a typed argv builder — neutralizes argument/flag injection into an exec `argv` | any | — |\n| `procrun` | Subprocess runner: reap-race-tolerant wait, deadlock-free capped stdio capture, timeout, streaming + cancel | any | — |\n| `pollworker` | Single-owner `poll(2)` loop + a lock-free fork/exec job table for offloading blocking work off the loop thread | **linux** | — |\n| `ipcbus` | Same-host unix-socket control plane — request/reply server + a capped in-memory scratch key→bytes bus | **linux** | framing |\n| `framing` | Length-prefixed stream framing (`writeFrame`/`readFrame`) + a generic JSON tagged-union envelope codec | any | — |\n| `csvstream` | Streaming RFC 4180 CSV reader that preserves byte offsets, bounded memory regardless of file size | any | — |\n| `csvsafe` | OWASP CSV formula-injection guard (`=`/`+`/`-`/`@` cell leads) | any | — |\n| `json5` | Single-pass JSON5→JSON preprocessor (comments, unquoted keys, trailing commas, single-quoted strings) | any | — |\n| `zipstream` | Streaming ZIP archive reader — walk the central directory once, stream decompressed member bytes on demand | any | — |\n| `encoding` | Legacy single-byte code page ↔ UTF-8 transcoding (5 European code pages: windows-125x, ISO-8859-1/2/15) | any | — |\n| `datefmt` | Civil calendar + token-based date/time parse/format + calendar arithmetic, correct before 1970 | any | — |\n| `tz` | IANA time-zone offset lookup — zone name → UTC offset/DST at a given instant (600 zones + POSIX-TZ footer) | any | datefmt |\n| `numparse` | Locale-aware grouped-number parsing (thousands/decimal separators) into an exact `decimal.Decimal` | any | decimal |\n| `diagnostics` | LSP-style structured validation-finding collector — severity, dot-path, position, code, suggestion | any | — |\n\n## Roadmap / not yet built\n\nResearch-verdicted **DON'T-BUILD-YET** — no consumer demands them today; see each\nmodule's `SPEC.md` (once built) or the git history for the full reasoning and the\n\"when greenlit\" path for each:\n\n- **`testkit`** (shared test harness) — deferred; the honest remaining scope (a\n  `runWire` HTTP-wire test wrapper + `expectStatus` family + fake-clocks) needs a\n  `build.zig` test-only-dep mechanism with no precedent in this repo, plus a 19-module\n  refactor to pay off.\n- **`Reconcilable(T)`** (generic desired-vs-actual reconciler) — no second consumer\n  exists yet; extract a small `RollbackTimer` (arm/confirm/overdue) first, once one\n  appears.\n- **`kv` on-disk MVCC / transactions / ordered scans** — a multi-week B-tree + WAL build\n  with zero current consumers demanding scans or transactions; the existing Bitcask-style\n  log is enough until one does.\n\n## Non-goals — deliberately not built here\n\nDurable scope decisions (candidate audit, 2026-07-09): capabilities this collection will\nnot own, and what to reach for instead.\n\n### Adopt instead of building\n\n| Capability | Adopt instead | Why not a module |\n|---|---|---|\n| Hardened/read-only SQLite | `vrischmann/zig-sqlite` or `karlseguin/zqlite.zig`, wrapped consumer-side | The enforcement (`authorizer`/`PRAGMA query_only`/`open_v2(READONLY)`) is raw C-API — breaks the pure-Zig/no-libc invariant |\n| SSH | bind `libssh2` | Pure-Zig SSH is a huge build; externally-coupled, stays consumer-side |\n| Kafka | bind `librdkafka` | External C client, no pure-Zig alternative |\n| gRPC | build over our HTTP/2 + adopt `Arwalk/zig-protobuf` | Needs an external protobuf codec; no trustworthy pure-Zig gRPC exists |\n| OPC-UA | adopt/bind an existing stack | Huge industrial protocol stack, not a Zig-native win |\n| Regex | `mnemnion/mvzr` (no captures) or `zig-utils/zig-regex` (captures) | Two mature pure-Zig libs already exist |\n| PostgreSQL (wire v3) | `karlseguin/pg.zig` | Mature MIT lib, pooling + TLS |\n| MySQL/MariaDB | `speed2exe/myzql` | Only viable option |\n| SMTP | `karlseguin/smtp_client.zig` | Mature MIT lib (TLS-1.2 caveat) |\n| WebSocket | `karlseguin/websocket.zig` | Mature MIT lib, both roles |\n| protobuf | `Arwalk/zig-protobuf` | De-facto pure-Zig implementation |\n| TOML | `mattyhall/tomlz` | Mature MIT config parser |\n| Templates | `jetzig/zmpl` (comptime-typed) / `batiati/mustache-zig` (logic-less) / `gremlin-labs/vibe-jinja` (runtime `.jinja` corpora only, pilot) | Zig comptime makes a runtime engine mostly unnecessary |\n| Structured logging | `karlseguin/log.zig` | Cleanest \"just use it\" |\n| S3 | `lobo/aws-sdk-for-zig` | SigV4 built in |\n| Redis/Valkey | `kristoff-it/zig-okredis` (partial/alpha) | Best available design |\n| YAML (flat/nested config) | `kubkon/zig-yaml` / `pwbh/ymlz` (both partial — no anchors/tags) | Fine for config; not 1.2-complete (see full YAML below) |\n\n### Won't build\n\n- **`exprcalc`** — app-specific spreadsheet/rules engine, not reused cross-project, and needs external regex.\n- **`unaccent`** — fully dependent on external `uucode` tables; not included.\n- **`roquery`** — C-level SQLite hardening (authorizer/query_only enforcement); lives consumer-side over adopted zig-sqlite.\n- **`taskqueue`** — folded into `jobqueue`.\n- **`chunkframe`** — too small to be a module; a documented ~20-LOC pattern instead.\n- **YAML 1.2 (full spec)** — no adoptable complete pure-Zig implementation; the partial libs above cover config use.\n- **Jinja** — Zig comptime templating covers dev-authored use; `vibe-jinja` is a consumer-side pilot option for runtime `.jinja` corpora only.\n- **IMAP** — no mature pure-Zig lib; stays unbuilt.\n- **HTTP/3 (QUIC)** — not researched, stays dropped.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaxified%2Fzig-libs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzaxified%2Fzig-libs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaxified%2Fzig-libs/lists"}