#protobuf #codegen #ttrpc

build ttrpc-codegen

Rust codegen for ttrpc using ttrpc-compiler crate

13 releases

0.5.0 Jan 15, 2025
0.4.2 Apr 14, 2023
0.4.1 Sep 14, 2022
0.3.0 Dec 22, 2021
0.1.1 Jul 20, 2020

#802 in Build Utils

Download history 8430/week @ 2024-10-23 7694/week @ 2024-10-30 5167/week @ 2024-11-06 6650/week @ 2024-11-13 5686/week @ 2024-11-20 5237/week @ 2024-11-27 5585/week @ 2024-12-04 4544/week @ 2024-12-11 4380/week @ 2024-12-18 3399/week @ 2024-12-25 4730/week @ 2025-01-01 5174/week @ 2025-01-08 6440/week @ 2025-01-15 8049/week @ 2025-01-22 6509/week @ 2025-01-29 6322/week @ 2025-02-05

28,100 downloads per month
Used in 4 crates (3 directly)

Apache-2.0

180KB
4.5K SLoC

API to generate .rs files for ttrpc from protobuf

API to generate .rs files to be used e. g. from build.rs.

Example

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"

Versions

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

Alternative

The alternative is to use protoc-rust crate, which relies on protoc command to parse descriptors. Both crates should produce the same result, otherwise please file a bug report.

Dependencies

~9–20MB
~296K SLoC