1个不稳定版本
0.1.0 | 2024年6月2日 |
---|
#23 在 #tonic
10KB
135 行
tonic-build-protobuf / tonic-codec-protobuf
通过rust-protobuf编译proto文件,并为tonic生成服务存根。
功能
必需依赖
[dependencies]
tonic = "<tonic-version>"
protobuf = "<protobuf-version>"
tonic-codec-protobuf = "<tonic-codec-protobuf-version>"
[build-dependencies]
tonic-build-protobuf = "<tonic-build-protobuf-version>"
示例
在 build.rs
fn main() {
// Project layout:
// .
// ├── Cargo.toml
// ├── build.rs
// ├── include
// │ └── rustproto.proto
// ├── proto
// │ └── debugpb.proto
// └── src
// └── lib.rs
tonic_build_protobuf::Builder::new()
.out_dir(format!(
"{}/protos",
std::env::var("OUT_DIR").expect("No OUT_DIR defined")
))
.proto_path("crate")
.file_name(|pkg, svc| format!("{pkg}_{svc}_tonic"))
.codec_path("::tonic_codec_protobuf::ProtobufCodecV3")
.compile(&["proto/debugpb.proto"], &["proto", "include"]);
}
然后你可以在代码中这样引用生成的Rust
mod generated {
include!(concat!(env!("OUT_DIR"), "debugpb_debug_tonic.rs"));
}
pub use generated::*;
查看这里的示例
许可证
本项目遵循MIT许可证。
依赖
~4–6MB
~105K SLoC