Files
lua/rockspec/lua-zap-0.1.3-4.rockspec
zeekay 91103511be Finish capnp->ZAP rebrand; vendor lunitx; decouple cjson; bump rockspec
Rename the Cap'n Proto Lua port to ZAP, brand-neutral throughout:
- capnp.lua -> zap.lua, capnp/ -> zap/, *.capnp -> *.zap, compiler bins
  capnpc-* -> zapc-*, schema/handwritten modules -> *_zap.lua. Zero
  capnp/Cap'n Proto leftovers in zap-native source/build (upstream-fork
  Kenton Varda copyright headers in proto/c++.zap and bin/schema.zap stay).
  Generated-code header and doc links point at github.com/zap-proto/lua and
  zap-proto.io.

Tests now run with no extra install:
- Vendor the lunitx test framework (Michael Roth / Doug Currie, MIT) under
  vendor/ (lunit, lunit.console, lunitx, lunitx.atexit). Its __gc atexit hook
  drives each test file under LuaJIT and exits nonzero on any failure.
- tests/run_tests.sh and test.sh are self-contained (set LUA_PATH incl
  vendor/), generate proto/example_zap.lua via the `zap` compiler when present,
  and skip 01/10 with a clear note (never a false pass) when it is absent.
  02-util and 03-compile are pure-Lua and always run.
- Verified under LuaJIT 2.1: 01(20) + 02(7) + 03(1) + 10(31) = 59 tests pass,
  0 failed; runner returns nonzero on an injected failure.

Decouple optional cjson so the runtime/compiler load under a bare LuaJIT:
- zap/compile.lua loads cjson lazily and only for debug logging (guarded by
  the debug flag); bin/zapc-llua makes the schema JSON dump optional.

Rockspec: bump lua-zap to 0.1.3-4, declare lua-cjson >= 2.1.0, and install the
vendored lunitx modules. .gitignore: scope the rockspec-pack ignore to repo
root so rockspec/ specs are tracked; ignore the `dump` test artifact.

TODO trimmed to the genuinely remaining items (AnyPointer set/decode, packed
serialization, schema_zap regeneration, multi-file compile, perf).
2026-06-20 00:12:16 -07:00

39 lines
1.1 KiB
Lua

package = "lua-zap"
version = "0.1.3-4"
source = {
url = "git://github.com/zap-proto/lua",
tag = "v0.1.3-4",
}
description = {
summary = "Lua-zap is a pure lua implementation of zap based on LuaJIT.",
detailed = [[
Lua-zap is a pure lua implementation of zap based on LuaJIT.
]],
homepage = "https://github.com/zap-proto/lua",
license = "BSD",
}
dependencies = {
"lua ~> 5.1", -- in fact, this should be "luajit >= 2.1.0"
"lua-cjson >= 2.1.0", -- optional: schema/debug JSON dumps
}
build = {
type = "builtin",
modules = {
zap = "zap.lua",
['zap.compile'] = "zap/compile.lua",
['zap.util'] = "zap/util.lua",
-- vendored test framework (lunitx), see vendor/
['lunit'] = "vendor/lunit.lua",
['lunit.console'] = "vendor/lunit/console.lua",
['lunitx'] = "vendor/lunitx.lua",
['lunitx.atexit'] = "vendor/lunitx/atexit.lua",
},
install = {
bin = {
['zapc-lua'] = "bin/zapc-lua",
['zapc-echo'] = "bin/zapc-echo",
['schema.zap'] = "bin/schema.zap",
}
}
}