#codegen #protobuf #ttrpc

构建 ttrpc-codegen

Rust 代码生成工具,用于将 ttrpc 编译器 crate 生成代码

12 个版本

0.4.2 2023 年 4 月 14 日
0.4.1 2022 年 9 月 14 日
0.4.0 2022 年 8 月 12 日
0.3.0 2021 年 12 月 22 日
0.1.1 2020 年 7 月 20 日

构建工具 类别中排名 #632

Download history 7791/week @ 2024-04-23 5675/week @ 2024-04-30 6549/week @ 2024-05-07 7726/week @ 2024-05-14 7553/week @ 2024-05-21 7395/week @ 2024-05-28 6168/week @ 2024-06-04 7588/week @ 2024-06-11 6497/week @ 2024-06-18 7436/week @ 2024-06-25 7389/week @ 2024-07-02 9377/week @ 2024-07-09 8464/week @ 2024-07-16 7016/week @ 2024-07-23 8844/week @ 2024-07-30 7129/week @ 2024-08-06

每月下载量 32,931
用于 4 个 crate(其中 3 个直接使用)

Apache-2.0 协议

180KB
4.5K SLoC

从 protobuf 生成 ttrpc 的 .rs 文件的 API

生成 .rs 文件的 API,例如 从 build.rs 使用。

示例

build.rs

use ttrpc_codegen::Codegen;
use ttrpc_codegen::{Customize, ProtobufCustomize};

fn main() {
    let protos = vec![
        "protos/a.proto",
        "protos/b.proto",
    ];

    Codegen::new()
        .out_dir("protocols/sync")
        .inputs(&protos)
        .include("protocols/protos")
        .rust_protobuf()
        .customize(Customize {
            ..Default::default()
        })
        .rust_protobuf_customize(ProtobufCustomize {
            ..Default::default()
        }
        .run()
        .expect("Gen code failed.");
}

Cargo.toml

[build-dependencies]
ttrpc-codegen = "0.2"

版本

ttrpc-codegen 版本 ttrpc 版本
0.1.x <= 0.4.x
0.2.x == 0.5.x
0.3.x == 0.6.x
0.4.x >= 0.7.x

替代方案

替代方案是使用 protoc-rust crate,它依赖于 protoc 命令解析描述符。这两个 crate 应该产生相同的结果,否则请提交错误报告。

依赖关系

~10–20MB
~277K SLoC