Crate capnpc

source ·
Expand description

Cap’n Proto Schema Compiler Plugin Library

This library allows you to do Cap’n Proto code generation within a Cargo build. You still need the capnp binary (implemented in C++). (If you use a package manager, try looking for a package called capnproto.)

In your Cargo.toml:

[dependencies]
capnp = "0.16" # Note this is a different library than capnp*c*

[build-dependencies]
capnpc = "0.16"

In your lib.rs:

mod foo_schema {
    include!(concat!(env!("OUT_DIR"), "/schema_foo.rs"));
}

mod bar_schema {
    include!(concat!(env!("OUT_DIR"), "/schema_bar.rs"));
}

In your build.rs:

fn main() {
    capnpc::CompilerCommand::new()
        .src_prefix("schema")
        .file("schema/foo.capnp")
        .file("schema/bar.capnp")
        .run().expect("schema compiler command");
}

This will be equivalent to executing the shell command

  capnp compile -orust:$OUT_DIR --src-prefix=schema schema/foo.capnp schema/bar.capnp

Modules

Structs