#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 • Rust 包仓库 7791/week @ 2024-04-23 • Rust 包仓库 5675/week @ 2024-04-30 • Rust 包仓库 6549/week @ 2024-05-07 • Rust 包仓库 7726/week @ 2024-05-14 • Rust 包仓库 7553/week @ 2024-05-21 • Rust 包仓库 7395/week @ 2024-05-28 • Rust 包仓库 6168/week @ 2024-06-04 • Rust 包仓库 7588/week @ 2024-06-11 • Rust 包仓库 6497/week @ 2024-06-18 • Rust 包仓库 7436/week @ 2024-06-25 • Rust 包仓库 7389/week @ 2024-07-02 • Rust 包仓库 9377/week @ 2024-07-09 • Rust 包仓库 8464/week @ 2024-07-16 • Rust 包仓库 7016/week @ 2024-07-23 • Rust 包仓库 8844/week @ 2024-07-30 • Rust 包仓库 7129/week @ 2024-08-06 • Rust 包仓库

每月下载量 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