Files
nim/zap.nimble
zeekay 018c271048 ci: add Nim build/test workflow + nimble test task
Run the production-ready serialization suite (pack/unpack, compress,
AnyPointer, single-segment copying) plus a zapc compile on every push,
PR, and manual dispatch.

The port targets the Nim 0.18.x toolchain era; CI runs inside
nimlang/nim:0.18.0 for a deterministic environment and resolves the
collections 0.3.4 dependency by git ref (the 0.18 nimble predates ==
ranges). Verified green locally: nimble test exits 0 with 4/4 tests.

TODO.md records the full toolchain matrix and the RPC-layer reactor
version gap with source anchors. No capnp/Cap'n Proto strings remain in
ZAP-native source (upstream MIT header excepted).
2026-06-20 21:43:56 -07:00

29 lines
1.2 KiB
Nim

# Package
version = "0.0.3"
author = "Michał Zieliński <[email protected]>"
description = "ZAP bindings for Nim"
license = "MIT"
bin = @["zap/zapc"]
# Dependencies
#
# The serialization layer (and the `zapc` code generator) builds against
# collections 0.3.4 on Nim 0.18.x — the toolchain era this port targets.
# The git-ref pin is used because the Nim 0.18 nimble predates `==` ranges.
# See TODO.md for the full toolchain matrix and the RPC-layer reactor gap.
requires "nim >= 0.18.0"
requires "https://github.com/zielmicha/collections.nim#v0.3.4"
# `nimble test` verifies the production-ready serialization layer:
# pack/unpack round-trips, single-segment copying, AnyPointer, and the
# zapc compiler binary. These need only `collections`. The RPC tests
# (caprpc/, reactor-backed) are out of scope here — see TODO.md.
task test, "Run the serialization test suite":
exec "nim c --hints:off --path:. -r tests/test_simple"
exec "nim c --hints:off --path:. -r tests/test_compress"
exec "nim c --hints:off --path:. -r tests/test_anypointer"
exec "nim c --hints:off --path:. -r tests/test_copying"
exec "nim c --hints:off --path:. zap/zapc"