#tonic-build #buf #protobuf #integrate #yaml #generate #helper

tonic-buf-build

一个将 buf.build 集成到 tonic-build 的构建助手

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编码 中排名

Download history 21/week @ 2024-04-21 6/week @ 2024-04-28 4/week @ 2024-05-12 6/week @ 2024-05-26 117/week @ 2024-06-02 14/week @ 2024-06-09 4/week @ 2024-06-16 43/week @ 2024-06-23 38/week @ 2024-06-30 14/week @ 2024-07-07 54/week @ 2024-07-14 21/week @ 2024-07-21 59/week @ 2024-07-28 44/week @ 2024-08-04

每月下载量 179

MIT 许可证

13KB
216 代码行

tonic-buf-build

一个构建助手,允许您将 buf.buildtonic-build 集成。使用 buf.build 和 tonic,您可以轻松管理 proto 文件的第三方依赖项并在 Rust 中生成 proto 文件的代码。与 buf.yamlbuf.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.yamlbuf.work.yaml 的目录的 绝对 路径,并调用相应的 tonic_buf_build::compile_from_buf_with_configtonic_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