This is a C plugin for Cap'n Proto, an efficient protocol for sharing data and capabilities.
This is only the plugin, to properly make use of it you need to download, build and install capnpc and then build and install this project and then you can utilize it as:
capnpc compiler/test.capnp -oc
This is a merge of 3 forks of James McKaskill's great work, which has been untouched for a while:
The compiler
directory contains the C language plugin (capnpc-c
) for use with the capnp
tool: https://capnproto.org/capnp-tool.html.
capnp
will by default search $PATH
for capnpc-c
- if it's on your PATH, you can generate code for your schema as follows:
$ capnp compile -o c myschema.capnp
Otherwise, you can specify the path to the c plugin:
$ capnp compile -o ./capnpc-c myschema.capnp
capnp
generates a C struct that corresponds to each capn proto struct, along with read/write functions that convert to/from capn proto form.
TBD whether it will make sense in the future to provide accessor functions for struct members, rather than converting entire structs.
git clone https://github.com/opensourcerouting/c-capnproto
cd c-capnproto
git submodule update --init --recursive
autoreconf -f -i -s
./configure
make
make check