128 个版本

0.19.0 2024年1月14日
0.18.0 2023年9月4日
0.17.2 2023年6月26日
0.16.3 2023年2月27日
0.0.5 2014年11月23日

#86编码

Download history 25075/week @ 2024-04-14 22035/week @ 2024-04-21 25649/week @ 2024-04-28 30875/week @ 2024-05-05 32159/week @ 2024-05-12 51462/week @ 2024-05-19 40261/week @ 2024-05-26 49010/week @ 2024-06-02 48027/week @ 2024-06-09 44628/week @ 2024-06-16 47726/week @ 2024-06-23 36722/week @ 2024-06-30 26828/week @ 2024-07-07 24809/week @ 2024-07-14 26850/week @ 2024-07-21 27879/week @ 2024-07-28

108,021 每月下载量
72 软件包中使用 (直接使用 33)

MIT 许可证

1.5MB
30K SLoC

Rust 的 Cap'n Proto 代码生成

crates.io

文档

生成的代码依赖于 capnproto-rust 运行时库.

可以通过 rust.capnp 中定义的注释来自定义代码生成。


lib.rs:

Cap'n Proto 模式编译器插件库

此库允许您在 Cargo 构建中使用 Cap'n Proto 代码生成。您仍然需要 capnp 二进制文件(用 C++ 实现)。(如果您使用包管理器,请尝试查找名为 capnproto 的包。)

在您的 Cargo.toml 中

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

[build-dependencies]
capnpc = "0.19"

在您的 build.rs 中

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

在您的 lib.rs 中

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

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

这相当于执行以下 shell 命令

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

依赖关系