0.12.1 (2024-07-17)
- Reduce tokio-stream feature (#1795)
0.12.0 (2024-07-08)
This breaking release updates tonic to the hyper 1.0
ecosystem and also updates
to prost v0.13.0
.
- 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)
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 generatedtonic_reflection::pb::v1
code.- Make compression encoding configuration more malleable (#1757)
- Removed implicit configuration of client TLS roots setup (#1731)
0.11.0 (2024-02-08)
BREAKING CHANGES:
- Removed
NamedService
from thetransport
module, please import it viatonic::server::NamedService
. - MSRV bumped to
1.70
.
- Added
zstd
compression support. - Added connection timeout for
connecto_with_connector_lazy
. - Upgrade rustls to
v0.22
- Feature gate server implementation for
tonic-reflection
.
0.10.2 (2023-09-28)
0.10.1 (2023-09-21)
0.10.0 (2023-09-08)
- codegen: Use stream type from codegen mod (#1446) (60d776b)
- examples: Use https scheme when using tls (#1466) (388b177)
- tls: Don't use tls w/
http
scheme (#1454) (95e81f5)
- build: Add optional default unimplemented stubs (#1344) (aff1daf)
- core: amortize many ready messages into fewer, larger buffers (#1423) (76eedc1)
- tonic-types: add ability to extract rich error details from
google.rpc.Status
(#1430) (5fd635a) - transport: Add
Router::into_router
(#1442) (ea06a1b) - transport: Expose TcpConnectInfo fields (#1449) (74b079c)
- web: Add
GrpcWebClientService
(#1472) (dc29c17)
0.9.2 (2023-04-17)
0.9.1 (2023-04-03)
0.9.0 (2023-03-31)
- build: Allow Services to be named Result (#1203) (a562a3c), closes #1156
- codec: Cancelled client streaming handling (#1315) (c8027a1), closes #848
- MetadataKey::from_bytes returns an error (#1246) (930c805)
- web: Fix
enable
and update docs (#1326) (a9db219)
- add GrpcMethod extension into request for client (#1275) (7a6b20d)
- build: Builder: add {enum,message}_attributes (#1234) (ff642f9)
- codec: Configure max request message size (#1274) (9f716d8), closes #1097
- core: Default encoding/decoding limits (#1335) (ff33119)
- reflection: Add dummy implementation for extension (#1209) (fdff111)
- Rename api related to protobuf (#1224) (d2542dc)
- tls: add an option for optional TLS client authentication (#1163) (773e4e1), closes #687
- tonic: Use NamedService without transport feature (#1273) (5acde56)
- transport: Add
local_addr
toRequest o
(#1327) (b54ce23) - transport: added support for EC keys (#1145) (17d6a4b), closes #1143
- types: Add gRPC Richer Error Model support (Docs) (#1317) (69ce71e)
- types: Add gRPC Richer Error Model support (Examples) (#1300) (d471212)
- types: Add gRPC Richer Error Model support (Help) (#1293) (d6041a9)
- types: Add gRPC Richer Error Model support (LocalizedMessage) (#1295) (d54d02d)
- types: Add gRPC Richer Error Model support (PreconditionFailure) (#1276) (2378581)
- types: Add gRPC Richer Error Model support (QuotaFailure) (#1204) (03b4735)
- types: Add gRPC Richer Error Model support (ResourceInfo) (#1282) (7eeda24)
- types: Add gRPC Richer Error Model support (RetryInfo) (#1095) (6cdb3d4)
- types: add support for
DebugInfo
error message type (#1179) (3076e82) - types: Expose FILE_DESCRIPTOR_SET (#1210) (cc42d1f)
0.8.4 (2022-11-29)
0.8.3 (2022-11-28)
- do not panic while encoding oversized bodies (#1142) (33e22bb), closes #1141
- reflection, health: Remove transport feature (#1112) (7153289)
- build: Add
build_transport
builder option (#1130) (1f5bc9b) - build: Add
CodeGenBuilder
(#1154) (c4525ba) - build: Add disable_comments option (#1127) (e188521)
- Expose
Request#into_parts
andRequest#from_parts
(#1118) (b409ddd) - transport: add
from_listener
forTcpIncoming
(#1093) (0b03b30) - web: Implement tower::Layer for tonic_web::Config (#1119) (40536dc)
- web: Removed Cors impl and replaced with tower-http's CorsLayer (#1123) (a98d719), closes #1122
0.8.2 (2022-09-28)
- add
Result<T>
type alias forstd::result::Result<T, tonic::Status>
(#1085) (56ff45d) - build: add
cleanup-markdown
feature flag (#1086) (c1b08df) - tonic: impl
Clone
forStatus
usingArc
(#1076) (ee3d0df) - transport: Expose hyper's H2 adaptive window on server (#1071) (919d28b)
- types: Add gRPC Richer Error Model support (BadRequest) (#1068) (3e40d81), closes /github.com/hyperium/tonic/pull/1068#discussion_r956117520
0.8.0 (2022-07-29)
- Add
Grpc::with_origin
for clients (#1017) (10f6d2f) - build: Add option to emit rerun-if-changed instructions (#1021) (1d2083a)
- build: Better support for custom codecs (#999) (de2e4ac)
- Decouple
NamedService
from thetransport
feature (#969) (feae96c)
- build:
CODEC_PATH
moved from const to fn
0.7.2 (2022-05-05)
- build: Reduce
Default
bound requirement (#974) (4533a6e) - don't enable default features in tower (#972) (b4f9634)
- transport: Emit
HttpsUriWithoutTlsSupport
only w/ tls feat (#996) (1dd5ad2)
0.7.1 (2022-04-04)
0.7.0 (2022-04-01)
- build: clippy warning for must_use (#892) (a337f13)
- codec: Remove
Default
bound onCodec
(#894) (d574cfd) - codec: Return None after poll_data error (#921) (d7cae70)
- Handle interceptor errors as responses (#840) (#842) (bf44940)
- health: Correctly implement spec for overall health (#897) (2b0ffee)
- Return error on non https uri instead of panic (#838) (ef6e245)
- tonic: Expose h2 error instead of reason (#883) (a33e15a)
- tonic: Preserve HTTP method in interceptor (#912) (e623562)
- transport: connect w/ connector infailable (#922) (a197c20)
- transport: Endpoint returns transport error (#920) (ee6e726)
- transport: Make
Server::layer()
support more than one layer (#932) (e30bb7e) - transport: Make server builder more consitient (#901) (6763d19)
- web: Fix error tonic-web doc url (#928) (37cd483)
- build: add constructor
from_arc
for gRPC servers (#875) (7179f7a) - build: Expose Prost generation plugin (#947) (d4bd475)
- build: use prettyplease to format output (#890) (#904) (d6c0fc1)
- health: Expose
HealthService
publically (#930) (097e7e8) - Implement hash for
Code
(#917) (6bc7dab) - tls: upgrade to tokio-rustls 0.23 (rustls 0.20) (#859) (4548997)
- transport: add unix socket support in server (#861) (dee2ab5)
- transport: port router to axum (#830) (6dfc20e)
- transport: support customizing
Channel
's async executor (#935) (0859d82) - Update prost to 0.10 (#948) (c78274e)
0.6.2 (2021-12-08)
0.6.1 (2021-10-27)
0.6.0 (2021-10-25)
- build: Correctly convert
Empty
to()
(#734) (ff6a690) - build: split path types in compile (#721) (53ecc1f)
- tonic: change
connect_lazy
to be infallible (#712) (2e47154) - tonic: fix extensions disappearing during streaming requests (5c1bb90), closes #770
- tonic: Remove
Sync
requirement for streams (#804) (23c1392) - tonic: Status code to set correct source on unkown error (#799) (4054d61)
- transport: AddOrigin panic on invalid uri (#801) (3ab00f3)
- transport: Correctly map hyper errors (#629) (4947b07)
- build: Support prost's include_file option (#774) (3f9ab80)
- Update
prost
and friends to 0.9 (#791) (09805ec)
0.5.2 (2021-08-10)
0.5.1 (2021-08-09)
- build: allow services to be named
Service
(#709) (380d81d) - build: remove unnecessary
Debug
constraint for client streams (#719) (167e8cb)
- examples: add grpc-web example (#710) (5aa8ae1)
- health: Expose grpc_health_v1 file descriptor set (#620) (6ee638d)
- tonic: add
Interceptor
trait (#713) (8c8f4d1) - transport: Add
Connected
impl forDuplexStream
(#722) (0e33a02)
0.5.0 (2021-07-08)
- build: fix
with_interceptor
not building on Rust 1.51 (#669) (9478fac) - codec: Fix streaming reponses w/ many status (#689) (737ace3), closes #681
- codec: improve error message for invalid compression flag (#663) (9cc14b7)
- examples: Fix tower examples (#624) (4a917a3)
- tonic: don't include error's cause in Display impl (#633) (31a3468)
- tonic: don't remove reserved headers in interceptor (#701) (6711b80)
- tonic: make
Interceptor
UnwindSafe
(#641) (57509d3) - transport: remove needless
BoxFuture
(#644) (74ad0a9) - web: fix compilation (#670) (e199387)
- build: support adding attributes to clients and servers (#684) (a948a8f)
- codec: compression support (#692) (0583cff)
- metadata: expose
IterMut
andValuesMut
(#639) (b0ec3ea) - metadata: remove manual
Send + Sync
impls for metadata types (#640) (e97f518) - tonic-web: implement grpc <-> grpc-web protocol translation (#455) (c309063)
- tonic: add
h2::Error
as asource
forStatus
(#612) (b90bb7b) - tonic: add
Request
andResponse
extensions (#642) (352b0f5) - tonic: expose setting for
http2_adaptive_window
(#657) (12815d0) - tonic: implement
From<Code>
fori32
(f33316d) - tonic: make it easier to add tower middleware to servers (#651) (4d2667d)
- tonic: pass
trace_fn
the request rather than just the headers (#634) (7862a22) - tonic: Use
BoxBody
fromhttp-body
crate (#622) (4dda4cb) - transport: Add
connect_with_connector_lazy
(#696) (2a46ff5), closes #695 - transport: Add a tls-webpki-roots feature to add trust roots from webpki-roots (#660) (32173dc)
- transport: add connect timeout to
Endpoint
(#662) (2b60a00) - transport: provide generic access to connect info (#647) (e5e3118)
0.4.3 (2021-04-29)
- tonic: Add
Request::set_timeout
(#615) (dae31d0) - transport: Support timeouts with "grpc-timeout" header (#606) (9ff4f7b)
0.4.2 (2021-04-13)
- codec: Allocate inbound buffer once (#578) (1d2754f)
- reflection: Depend on correct version of build (#582) (db09093)
- build: Add
prostoc_args
(#577) (480a794) - Expose status constructors (#579) (0d05aa0)
- health: Expose proto and client (#471) (#602) (49f6137)
0.4.1 (2021-03-16)
- build: Add disable_package_emission option to tonic-build (#556) (4f5e160)
- build: Support compiling well-known protobuf types (#522) (61555ff)
- build: Use
RUSTFMT
to findrustfmt
binary (#566) (ea56e2e) - Implement gRPC Reflection Service (#340) (c54f247)
0.4.0 (2021-01-15)
-
build: Add content-type for generated unimplemented service (#441) (62c1230)
-
build: Match namespace code with other generated packages (#472) (1b03ece)
-
gracefully handle bad native certs (#520) (fe4d5b9), closes #519
-
transport: Add content-type for Unimplemented (#434) (594a542)
-
transport: reconnect lazy connections after first failure (#458) (e9910d1), closes #452
-
transport: return Poll::ready until error is consumed (#536) (dafea9a)
-
fix(transport) Do not panic when building and Endpoint with an invali… (#438) (26ce9d1), closes #438
- tonic: implement Fromio::Error for Status (#500) (fc86563)
- transport: Add
Router::into_service
(#419) (37f6733) - transport: add max http2 frame size to server. (#529) (31936e0), closes #264
- transport: add user-agent header to client requests. (#457) (d4899df), closes #453
- transport: Connect lazily in the load balanced channel (#493) (2e964c7)
- transport: expose HTTP2 server keepalive interval and timeout (#486) (2b9cdb9), closes #474
- transport: Fix TLS accept w/ peer certs (#535) (41c51f1)
- transport: Move error! to debug! (#537) (a7778ad)
TryFrom
API has been changed.
0.3.1 (2020-08-20)
0.3.0 (2020-07-13)
Status::details
leaking base64 encoding (#395) (2c4c544), closes #379- build: Allow empty packages (#382) (f085aba), closes #381
- build: Make generated server service public (#347) (8cd6f05)
- Remove uses of pin_project::project attribute (#367) (5bda615)
- transport: Propagate errors in tls_config instead of unwrap/panic (#385) (3b9d6a6)
- Add
Display
implementation forCode
(#386) (ab1de44) - Add
Status::to_http
(#376) (327b4ff) - Add metadata to error responses (#348) (372da52)
- add new method get_uri for Endpoint (#371) (54d7a7a)
- codec: Improve compression flag log (#374) (d68dd36)
- transport: Add Endpoint::connect_lazy method (#392) (ec9046d), closes #167
- transport: Add optional service methods (#275) (2b997b0)
- transport: Dynamic load balancing (#341) (85ae0a4)
- types: Add
tonic-types
crate (#391) (ea7fe66)
0.2.1 (2020-05-07)
- base64 encode details header (#345) (e683ffe)
- build: Remove ambiguity in service method call (#327) (5d56daa)
- transport: Apply tls-connector for discovery when applicable (#334) (#338) (99fbe22)
0.2.0 (2020-04-01)
- build: Allow non_camel_case_types on codegen structs (224280d), closes #295
- build: Don't replace extern_paths (#261) (1b3d107)
- build: Ignore non
.rs
files with rustfmt (#284) (7dfa2a2), closes #283 - build: Implement Debug for client struct (6dbe88d), closes #298
- build: Remove debug println! (#287) (e2c2be2)
- build: Server service uses generic body bound (#306) (5758b75)
- health: Set referenced version of tonic (59c7788)
- metadata: Remove deprecated error description (61e0429)
- transport: Handle tls accepting on task (#320) (04a8c0c)
- Add Status with Details Constructor (#308) (cfd59db)
- build: Add support for custom prost config (#318) (202093c)
- build: Decouple codgen from
prost
(#170) (f65cda1) - health: Add tonic-health server impl (da92dbf), closes #135 #135
- transport: Expose http2 keep-alive support (#307) (012fa3c)
0.1.1 (2020-01-20)
- build: Typo with client mod docstring (#237) (5fc6762)
- transport: Add Connected impl for TcpStream (#245) (cfdf0af)
- transport: Use Uri host if no domain for tls (#244) (6de0b4d)
0.1.0 (2020-01-14)
- build: Remove default impl for Server traits (#229) (a41f55a)
- transport: Improve
Error
type (#217) (ec1f37e)
- Add gRPC interceptors (#232) (eba7ec7)
- build: Add extern_path config support (#223) (e034288)
- codec: Introduce
Decoder/Encoder
traits (#208) (0fa2bf1) - transport: Add
serve_with_incoming_shutdown
(#220) (a66595b) - transport: Add server side peer cert support (#228) (af807c3)
- Rename
ServiceName
toNamedService
. - removed
interceptor_fn
andintercep_headers_fn
fromtransport
in favor of usingtonic::Interceptor
. - codec: Add new
Decoder/Encoder
traits and useEncodeBuf/DecodeBuf
overBytesMut
directly. - build: remove default implementations for server traits.
0.1.0-beta.1 (2019-12-19)
- build: Allow creating multiple services in the same package (#173) (0847b67)
- build: Prevent duplicated client/server generated code (#121) (b02b4b2)
- build: Remove async ready (#185) (97d5363)
- build: snake_case service names (#190) (3a5c66d)
- docs: typo in lib.rs (#142) (c63c107)
- examples: Remove use of VecDeque as a placeholder type (#143) (354d4fd)
- Sanitize custom metadata (#138) (f9502df)
- transport: Fix infinite recursion in
poll_ready
(#192) (c99d13c), closes #184 #191 - transport: Fix lazily reconnecting (#187) (0505dff), closes #167
- transport: Load balance connecting panic (#128) (23e7695), closes #127
- transport: Remove support for OpenSSL (#141) (8506050)
- transport: Remove with_rustls for tls config (#188) (502491a)
- transport: Update builders to move self (#132) (85ef18f)
- Add
Status
constructors (#137) (997241c) - expose tcp_nodelay for clients and servers (#145) (0eb9991)
- transport: Add
remote_addr
toRequest
on the server si… (#186) (3eb76ab) - transport: Add server graceful shutdown (#169) (393a57e)
- transport: Add system root anchors for TLS (#114) (ac0e333), closes #101
- transport: Add tracing support to server (#175) (f46a454)
- transport: Allow custom IO and UDS example (#184) (b90c340), closes #136
- transport: Enable TCP_NODELAY. (#120) (0299509)
- transport: Expose tcp keepalive to clients & servers (#151) (caccfad)
- build: Build will now generate each service client and server into their own modules.
- transport: Remove support for OpenSSL within the transport.
0.1.0-alpha.5 (2019-10-31)
- build: Fix missing argument in generate_connect (#95) (eea3c0f)
- codec: Enforce encoders/decoders are
Sync
(#84) (3ce61d9), closes #81 - codec: Remove custom content-type (#104) (a17049f)
- Add
IntoRequest
andIntoStreamingRequest
traits (#66) (4bb087b) - transport: Add service multiplexing/routing (#99) (5b4f468), closes #29
- transport: Change channel connect to be async (#107) (5c2f4db)
- transport:
Endpoint::channel
was removed in favor of an asyncEndpoint::connect
.
0.1.0-alpha.4 (2019-10-23)
- build: Fix service and rpc name conflict (#92) (1dbde95), closes #89
- client: Use
Stream
instead ofTrySteam
for client calls (#61) (7eda823) - codec: Properly decode partial DATA frames (#83) (9079e0f)
- transport: Rename server tls config method (#73) (2a4bdb2)
- transport:
rustls_client_config
for the server has been renamed torustls_server_config
.
0.1.0-alpha.3 (2019-10-09)
- build: Expose prost-build type_attributes and field_attribu… (#60) (06ff619)
- transport: Expose more granular control of TLS configuration (#48) (8db3961)
0.1.0-alpha.2 (2019-10-08)
- codec: Fix buffer decode panic on full (#43) (ed3e7e9)
- codegen: Fix Empty protobuf type and add unimplemented (#26) (2670b34)
- codegen: Use wellknown types from
prost-types
(#49) (4e1fcec) - transport: Attempt to load RSA private keys in rustls (#39) (2c5c3a2)
- transport: Avoid exit after bad TLS handshake (#51) (412a0bd)