5 个版本
0.2.1 | 2024年6月7日 |
---|---|
0.2.0 | 2024年2月16日 |
0.1.2 | 2023年9月21日 |
0.1.1 | 2023年8月16日 |
0.1.0 | 2023年8月16日 |
1539 在 编码 中排名
每月下载量 179
13KB
216 代码行
tonic-buf-build
一个构建助手,允许您将 buf.build 与 tonic-build 集成。使用 buf.build 和 tonic,您可以轻松管理 proto 文件的第三方依赖项并在 Rust 中生成 proto 文件的代码。与 buf.yaml 和 buf.work.yaml 一起使用。
用法
将以下内容添加到您的 Cargo.toml 中
tonic-buf-build = "*"
tonic-build = "*"
然后,在您的 build.rs 中
fn main() -> Result<(), tonic_buf_build::error::TonicBufBuildError> {
tonic_buf_build::compile_from_buf(tonic_build::configure(), None)?;
Ok(())
}
要使用 buf 工作空间,只需调用 tonic_buf_build::compile_from_buf_workspace
。
有关完整和可工作的示例,请参阅示例文件夹。
当 buf 文件不在当前目录中时,您可以配置包含 buf.yaml
或 buf.work.yaml
的目录的 绝对 路径,并调用相应的 tonic_buf_build::compile_from_buf_with_config
或 tonic_buf_build::compile_from_buf_workspace_with_config
。
考虑以下 build.rs,其中 buf 工作空间目录位于包的一级以上(对于具有公共 proto 的多语言客户端来说是常见情况)
use std::env;
use std::path::PathBuf;
fn main() -> Result<(), tonic_buf_build::error::TonicBufBuildError> {
let mut path = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap());
path.pop();
tonic_buf_build::compile_from_buf_workspace_with_config(
tonic_build::configure(),
None,
tonic_buf_build::TonicBufConfig{buf_dir: Some(path)},
)?;
Ok(())
}
依赖项
~9–20MB
~280K SLoC