Skip to content

ttrpc 0.10.0 and code generators

Latest

Choose a tag to compare

@Tim-Zhang Tim-Zhang released this 09 Oct 03:28
8fdc03f

This coordinated release publishes ttrpc 0.10.0 and its matching code generators. All four crates were published on October 9, 2026 from commit 8fdc03fa7180ac150933eadd7df4f8a4470e1034.

Crate Previous release New release Git tag
ttrpc 0.9.0 0.10.0 v0.10.0
ttrpc-compiler 0.8.0 0.9.0 ttrpc-compiler-v0.9.0
ttrpc-codegen 0.6.0 0.7.0 ttrpc-codegen-v0.7.0
ttrpc-codegen-prost Initial release 0.1.0 ttrpc-codegen-prost-v0.1.0

Highlights

  • Add the Prost 0.13 runtime backend and the first standalone Prost generator, supporting synchronous, asynchronous, and streaming RPCs. (#286)
  • Add Unix connection hooks, per-connection metadata, and payload transforms through the optional security_extension feature. (#316)
  • Enforce async unary deadlines during queueing and writing, preserve stream data/close ordering, and clean up failed or cancelled connections and requests. (#312, #318, #324)
  • Reduce allocations, copying, and transport writes through buffer reuse and frame coalescing. (#327, #328, #337)
  • Improve canonical Google well-known type handling and generated module ordering. (#322, #326, #335)

Compatibility and migration

This release includes breaking API changes and requires Rust 1.80 or newer.

  • rust-protobuf: Upgrade to ttrpc 0.10, ttrpc-codegen 0.7, and ttrpc-compiler 0.9, then regenerate checked-in bindings. Canonical Google well-known RPC types now use protobuf runtime types unless explicitly selected for local generation. Customize and Codegen::customize use compiler 0.9 types; use ttrpc_codegen::Customize or upgrade direct compiler dependencies.
  • Prost: Use ttrpc-codegen-prost 0.1 with Prost 0.13 and install protoc. Configure ttrpc with default-features = false and explicitly enable prost and the desired runtime features (sync and/or async). The prost and rustprotobuf features are mutually exclusive. See the Prost setup guide.
  • Runtime APIs: Direct synchronous TtrpcContext construction requires conn_ctx; asynchronous construction requires connection_data. Custom proto::Codec implementations must provide merge. asynchronous::StreamInner::new is no longer public; use generated clients and typed stream APIs. Replace deprecated response_to_channel calls with TtrpcContext::respond or send_response to preserve payload transforms.
  • Compiler APIs: The unused legacy grpcio prost_codegen module was removed from ttrpc-compiler. Use ttrpc-codegen-prost for ttrpc Prost bindings.

Detailed changelogs

Full source changes since v0.9.0