1 个不稳定版本
0.1.0 | 2024 年 6 月 2 日 |
---|
#1481 在 网络编程
18KB
336 行
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 许可证 许可。
依赖项
~5–14MB
~184K SLoC