Skip to content

Releases: hyperium/tonic

v0.13.0

25 Mar 19:21
8be906d
Compare
Choose a tag to compare

This release is a breaking release and thus there are many changes include axum version and a few other crates. There are some additionally exposed APIs. At the moment this release is planned to be a long term release as the project shifts some of its resources to implementing a new transport module and to align itself better with other gPRC projects. More to be announced on this later.

What's Changed

  • feat(router): Implement From Routes and axum::Router for RoutesBuilder by @tottoto in #1957
  • feat(service): Add Layered service to propagate NamedService implementation by @tottoto in #1966
  • feat(router): Add method to get mutable reference to axum::Router by @tottoto in #1980
  • fix(tls): do not shutdown the server on connection timeout errors by @krispraws in #1972
  • Make Status::into_http() generic over any kind of Default-able Body by @shikhar in #1978
  • feat(web): Remove unnecessary Bytes type from GrpcWebCall body type by @tottoto in #1985
  • feat(web): Remove enable api by @tottoto in #1982
  • feat(router): Remove unnecessary BoxBody from response body by @tottoto in #1994
  • feat: Add tcp setting getters to endpoint by @Benjscho in #1983
  • server: swallow TLS errors in the accept loop by @PDXKimani in #1990
  • feat(interceptor): Change InterceptorLayer constructor associated function by @tottoto in #2005
  • feat(build): Make cleanup-markdown feature additive by @tottoto in #1952
  • feat: make pub Channel fns that allow creating it from a custom connector by @shikhar in #2015
  • feat(tls): AWS Libcrypto Support by @jenr24-architect in #2008
  • feat(server): Remove into_service api by @tottoto in #1996
  • use ring if no default crypto provider is found by @conradludgate in #2034
  • feat(transport): Make tower internal dependency by @tottoto in #1947
  • feat(web): Relax GrpcWebService request body type by @tottoto in #2016
  • feat!: Add Body type by @tottoto in #2013
  • feat(reflection): Expose ReflectionService by @tottoto in #2066
  • feat(web): Implement Debug for ResponseFuture by @tottoto in #2068
  • fix(server): Use Status::into_http api in recover error service by @tottoto in #2099
  • feat(health): Add WatchStream type for health service by @tottoto in #2108
  • Add deflate compression support by @a1ien in #2117
  • feat(tls): Add support for rustls ignore_client_order by @emuellen in #2042
  • feat(health): Remove unnecessary transport feature by @tottoto in #2130
  • feat(channel): Add local_address as an option Endpoint builder by @jparris in #1567
  • fix(test): Use github endpoint to fix flaky test by @tottoto in #2148
  • fix(test): Use test domain for test url by @tottoto in #2150
  • feat(server): Add serve api to server by @tottoto in #2152
  • feat(server): Allow server used independently of router by @tottoto in #2154
  • fix(client): improve gRPC-Web client behavior with trailers with a space after the colon by @sudorandom in #2053
  • Fix percent-encoding of percent sign in grpc-message header by @AndiDog in #2107
  • feat: Expose recover error service by @tottoto in #2159
  • feat(metadata): Implement AsRef and AsMut traits for MetadataMap by @hr567 in #2161
  • Add From for Response by @amrhassan in #1064
  • feat: optional SSLKEYLOGFILE support by @crepererum in #1539
  • feat: Allow convert i32 to Code in const context by @tottoto in #2195
  • feat(tonic): Exclude benches-disabled to remove Apache-2.0 resource by @tottoto in #2204
  • feat: Add proto header to generated code by @tottoto in #2205
  • feat(router): Use infallible as error type by @tottoto in #2232
  • feat(transport): add support for uds, unix domain socket #2218
  • fix(streaming): tonic::Streaming enters infinite loop on response error #2199

New Contributors

Full Changelog: v0.12.3...v0.13.0

v0.12.3

26 Sep 17:10
4b8d2c4
Compare
Choose a tag to compare

0.12.3 (2024-08-29)

Features

  • server: Added support for grpc max_connection_age (#1865)
  • build: Add #[deprecated] to deprecated client methods (#1879)
  • build: plumb skip_debug through prost Builder and add test (#1900)

Bug Fixes

  • build: Revert "fix tonic-build cargo build script outputs (#1821)" which accidentally increases MSRV (#1898)
  • server: ignore more error kinds in incoming socket stream (#1885)
  • transport: do not shutdown server on broken connections (#1948)

v0.12.2

26 Aug 20:25
82a856f
Compare
Choose a tag to compare

0.12.2 (2024-08-23)

Features

  • Move TimeoutExpired out of transport (#1826)
  • Move ConnectError type from transport (#1828)
  • channel: allow setting max_header_list_size (#1835)
  • router: Add RoutesBuilder constructor (#1855)
  • tls: Rename tls-roots feature with tls-native-roots (#1860)
  • router: Rename Routes::into_router with into_axum_router (#1862)
  • router: Implement from axum::Router for Routes (#1863)
  • channel: Re-enable TLS based on Cargo features in generated clients (#1866)
  • server: allow setting max_header_list_size (#1870)
  • build: Expose formatted service name (#1684)
  • reflection: add back support for v1alpha reflection protocol (#1888)

Bug Fixes

  • router: Add missing unimplemented fallback to RoutesBuilder (#1864)
  • server: Prevent server from exiting on ECONNABORTED (#1874)
  • web: fix panic in trailer parsing on multiple trailers (#1880)
  • web: fix empty trailer parsing causing infinite parser loop (#1883)

v0.12.1

17 Jul 18:11
e0b6caf
Compare
Choose a tag to compare

0.12.1 (2024-07-17)

Bug Fixes

  • Reduce tokio-stream feature (#1795)

v0.12.0

08 Jul 17:59
2eeca95
Compare
Choose a tag to compare

v0.12.0 (2024-07-08)

This breaking release updates tonic to the hyper 1.0 ecosystem and also updates
to prost v0.13.0.

Features

  • build: Custom codecs for generated code (#1599) (18a2b30)
  • channel: Make channel feature additive (#1574) (b947e1a)
  • codec: Make error when not utf8 value in compression encoding (#1768) (f8e1f87)
  • Implement http_body::Body::size_hint for custom body (#1713) (9728c01)
  • Make boxed function public (#1754) (2cc868f)
  • Relax GrpcMethod lifetime (#1598) (68bf17d)
  • tls: Add ability to add multiple ca certificates (#1724) (3457f92)
  • tls: Use rustls_pki_types::CertificateDer to describe DER encoded certificate (#1707) (96a8cbc)
  • tls: Remove tls roots implicit configuration (#1731) (de73617)
  • transport: Make service router independent from transport (#1572) (da48235)
  • transport: Make transport server and channel independent (#1630) (654289f)
  • transport: Rename reexported axum body (#1752) (5d7bfc2)
  • Use http::Extensions directly (#1710) (ed95d27)

Bug Fixes

  • tonic: flush accumulated ready messages when status received (#1756) (d312dcc), closes #1423

BREAKING CHANGES

  • tonic and crates updated to hyper 1.0 (#1670)
  • tonic and crates updated to prost 0.13 (#1779)
  • tonic_reflection::server is updated to use the generated
    tonic_reflection::pb::v1 code.
  • Make compression encoding configuration more malleable (#1757)