Install#
pixi#
$ pixi install
$ pixi run configure
$ pixi run build
$ pixi run test
Bare Meson#
$ meson setup build
$ meson compile -C build
$ meson test -C build
Optional Janet module: configure with a janet pkg-config package
visible, or -Djanet=enabled.
C embed#
#include <capnp-janet/capnp_message.h>
capnp_message_t msg;
capnp_message_view_flat(&msg, bytes, len);
capnp_ptr_t root;
capnp_root(&msg, &root);
const char *s; size_t n;
capnp_get_text(&root, /*ptr*/0, &s, &n);
Link libcapnp_janet (pkg-config: capnp-janet).
Janet#
(import capnp)
(def buf (capnp/build-demo 42 "hello" ["a" "bb"]))
(def msg (capnp/message-from-buffer buf))
(def root (capnp/root msg))
(print (capnp/get-u32 root 0)) # 42
; (capnp/get-u64 root byte-offset) for UInt64/Int64 fields
(print (capnp/get-text root 0)) # hello
(def items (capnp/getp root 1))
(print (capnp/list-get-text items 1)) # bb
Embedders that amalgamate Janet call capnp_janet_register(env) after
janet_init (see src/janet_mod.c).
Goldens#
Regenerate fixtures (needs system capnp):
$ ./scripts/gen-sample-fixtures.sh