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