Releases: hyperium/tonic
v0.14.1
Notable change is to relax the accidental MSRV bump in the last release.
What's Changed
- Add
service_generator
method toBuilder
by @koesie10 in #2364 - Improve connection accept error message @stepancheg in #2366
- Remove unconditional enable of tonic-build transport feature by @tottoto in #2357
- chore: relax msrv for most crates by @acrrd in #2378
New Contributors
- @koesie10 made their first contribution in #2364
- @stepancheg made their first contribution in #2366
- @acrrd made their first contribution in #2378
Full Changelog: v0.14.0...v0.14.1
v0.14.0
This release marks an important milestone for tonic, "hopefully" this will be the last major breaking release of Tonic before we start to transition work into bringing the community a joint-effort grpc-rust
implementation. For the moment, any new features for the core of tonic that are not related to the work towards grpc-rust
will not be accepted (I believe tonic to be in quite a good spot, security features of course will be handled with the upmost importance). Stay tuned there will be more information the coming months on what is going on with the new project but you can already see some of the code in the grpc
crate within the tonic
repository.
You can always watch this video for more info on grpc-rust
.
Breaking Changes
- Prost updated to v0.14
- Prost has been extracted to their own crates
Migration guide
To migrate between <=v0.13.1
to v0.14
anything that used prost has now been moved into either tonic-prost
or tonic-prost-build
. All the previous types are still available but under these two new crates.
What's Changed
- add support for tower's load-shed layer by @joeroback in #2189
- Box Status contents to reduce enum size (#2253) by @tustvold in #2282
- Update to prost 0.14 by @tottoto in #2300
- Update generated code to
error_details.proto
a56cbf3b
by @kriswuollett in #2306 - feat(transport): Allow setting TCP_KEEPINTVL and TCP_KEEPCNT by @xmakro in #2299
- fix(tonic): make
Streaming
Sync
again by @Twey in #2293 - feat: preserve user-agent header (for real) by @dbolduc in #2290
- feat(tls): Add tls handshake timeout support by @honsunrise in #2309
- Update socket2 to v0.6 by @Thomasdezeeuw in #2329
- feat: Extract prost into its own tonic based crates by @LucioFranco in #2321
- feat(build): allow to specify trait attributes by @ya7on in #2348
New Contributors
- @joeroback made their first contribution in #2189
- @tustvold made their first contribution in #2282
- @darrasse made their first contribution in #2297
- @ADSteele916 made their first contribution in #2291
- @kriswuollett made their first contribution in #2306
- @xmakro made their first contribution in #2299
- @Twey made their first contribution in #2293
- @honsunrise made their first contribution in #2309
- @CommanderStorm made their first contribution in #2308
- @ya7on made their first contribution in #2348
Full Changelog: v0.13.1...v0.14.0
v0.13.1
What's Changed
- Bump
h2
tov0.4.10
by @LucioFranco #2263 - feat(web): relax bounds for inner service's response body by @bmwill in #2245
- feat: preserve request user-agent by @dbolduc in #2250
- feat(server): Add method to get local addr to TcpIncoming by @tottoto in #2233
- feat: Expose Status as a Response extension by @tamasfe in #2145
- fix: tls config overwrite in endpoint by @vigneshs-12 in #2252
- feat: expose creation of HealthService and HealthReporter by @LeonHartley in #2251
New Contributors
- @dbolduc made their first contribution in #2250
- @tamasfe made their first contribution in #2145
- @vigneshs-12 made their first contribution in #2252
- @rafaeling made their first contribution in #2207
- @LeonHartley made their first contribution in #2251
Full Changelog: v0.13.0...v0.13.1
v0.13.0
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 ofDefault
-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
- @shikhar made their first contribution in #1979
- @krispraws made their first contribution in #1972
- @PDXKimani made their first contribution in #1990
- @jenr24-architect made their first contribution in #2008
- @easwars made their first contribution in #2047
- @arjan-bal made their first contribution in #2076
- @allan2 made their first contribution in #2105
- @a1ien made their first contribution in #2117
- @emuellen made their first contribution in #2042
- @jparris made their first contribution in #1567
- @sudorandom made their first contribution in #2053
- @AndiDog made their first contribution in #2107
- @hr567 made their first contribution in #2161
- @maximevtush made their first contribution in #2167
- @dakaizou made their first contribution in #2219
- @jimmycathy made their first contribution in #2224
Full Changelog: v0.12.3...v0.13.0
v0.12.3
v0.12.2
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
v0.12.1
v0.12.0
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)