v0.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) - reflection: Export server types.
- reflection: Add
with_service_name
.
- build:
CODEC_PATH
moved from const to fn - tonic Remove codegen depedency on
compression
feature. - tonic Remove
compression
feature in favor ofgzip
feature.
v0.7.2 (2022-05-04)
- build: Reduce
Default
bound requirement (#974) (4533a6e) - don't enable default features in tower (#972) (b4f9634)
- transport: Emit
HttpsUriWithoutTlsSupport
only with tls feature enabled (#996) (1dd5ad2)
0.7.1 (2022-04-04)
0.7.0 (2022-03-31)
- Update prost to 0.10 (#948) (c78274e)
- build: use prettyplease to format output (#890) (#904) (d6c0fc1)
- tls: upgrade to tokio-rustls 0.23 (rustls 0.20) (#859) (4548997)
- transport: port router to axum (#830) (6dfc20e)
- build: add must_use to gzip methods (#892) (a337f13)
- codec: Remove
Default
bound onCodec
(#894) (d574cfd) - tonic: Expose h2 error instead of reason (#883) (a33e15a)
- transport: connect w/ connector infailable (#922) (a197c20)
- transport: Endpoint returns transport error (#920) (ee6e726)
- Handle interceptor errors as responses (#840) (#842) (bf44940)
- codec: Return None after poll_data error (#921) (d7cae70)
- health: Correctly implement spec for overall health (#897) (2b0ffee)
- tonic: Preserve HTTP method in interceptor (#912) (e623562)
- transport: Make
Server::layer()
support more than one layer (#932) (e30bb7e) - transport: Make server builder more consistent (#901) (6763d19)
- Return error on non https uri instead of panic (#838) (ef6e245)
- build: Expose Prost generation plugin (#947) (d4bd475)
- build: add constructor
from_arc
for gRPC servers (#875) (7179f7a) - health: Expose
HealthService
publically (#930) (097e7e8) - transport: add unix socket support in server (#861) (dee2ab5)
- transport: support customizing
Channel
's async executor (#935) (0859d82) - Implement hash for
Code
(#917) (6bc7dab)
0.6.2 (2021-12-07)
0.6.1 (2021-10-27)
0.6.0 (2021-10-25)
- tonic: Remove
Sync
requirement for streams (#804) (23c1392) - tonic: change
connect_lazy
to be infallible (#712) (2e47154) - build: split path types in compile (#721) (53ecc1f)
- Update
prost
and friends to 0.9 (#791) (09805ec)
- build: Correctly convert
Empty
to()
(#734) (ff6a690) - tonic: fix extensions disappearing during streaming requests (5c1bb90), closes #770
- tonic: Status code to set correct source on unknown error (#799) (4054d61)
- transport: AddOrigin panic on invalid uri (#801) (3ab00f3)
- transport: Correctly map hyper errors (#629) (4947b07)
- tonic: compression: handle compression flag but no header (#763)
- build: Support prost's include_file option (#774) (3f9ab80)
- health, reflection: make rustfmt dependency optional (#785)
0.5.2 (2021-08-10)
0.5.1 (2021-08-09)
- health: Expose grpc_health_v1 file descriptor set (#620) (167e8cb), closes #619
- tonic: derive
Clone
forRouterService
(#714) (#714) (0a06603) - transport: Add
Connected
impl forDuplexStream
(#722) (#722) (0e33a02)
- build: remove unnecessary
Debug
constraint for client streams (#719) (167e8cb), closes #718 - build: allow services to be named
Service
(#709) (380d81d), closes #676
0.5.0 (2021-07-08)
This release includes a new crate tonic-web
which is versioned at 0.1
and supports accepting grpc-web
!
prost
bumped to0.8
.BoxBody
was removed in favor of the version provided inhttp-body
.- The
Connected
trait has been modified to support more genericConnectionInfo
. Streaming
fixed to now returnNone
once the stream has observed a trailingStatus
, notifying the user that the stream has ended.- A new interceptor API.
- codec: Fix streaming reponses w/ many status (#689) (737ace3), closes #681
- build: fix
with_interceptor
not building on Rust 1.51 (#669) (9478fac) - codec: improve error message for invalid compression flag (#663) (9cc14b7)
- tonic: don't include error's cause in Display impl (#633) (31a3468)
- 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: 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) - tonic-web: implement grpc <-> grpc-web protocol translation (#455) (c309063)
- 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)
- client: Add
Request::set_timeout
(#615) (dae31d0) - transport: Configure TLS automatically when possible (#445) (b04c1c6)
- transport: Support timeouts with the
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)
- health: Expose proto and client (#471) (#602) (49f6137)
- Expose status constructors (#579) (0d05aa0)
- build: Add
prostoc_args
(#577) (480a794)
0.4.1 (2021-03-16)
- feat(reflection): Implement gRPC Reflection Service (#340) (c54f247), closes #340
- feat(build): Add disable_package_emission option to tonic-build (#556) (4f5e160), closes #556
- feat(build): Support compiling well-known protobuf types (#522) (61555ff), closes #522
- feat(build): Use
RUSTFMT
to findrustfmt
binary (#566) (ea56e2e), closes #566 - chore: add FromStr for Endpoint (#558) (f49d4bd), closes #558
0.4.0 (2021-01-15)
This version brings Tonic inline with Tokio 1.0 and Prost 0.7! This release also includes new versions of tonic-types
, tonic-build
, and tonic-health
.
- transport: return Poll::ready until error is consumed (#536) (dafea9a)
- gracefully handle bad native certs (#520) (fe4d5b9), closes #519
- build: Add content-type for generated unimplemented service (#441) (62c1230)
- build: Match namespace code with other generated packages (#472) (1b03ece)
- transport: Add content-type for Unimplemented (#434) (594a542)
- transport: reconnect lazy connections after first failure (#458) (e9910d1), closes #452
- client: Merge trailer and initla headers into status on err (#510)
- transport: Fix TLS accept w/ peer certs (#535) (41c51f1)
- status: 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: Move error! to debug! (#537) (a7778ad)
- transport: Do not panic when building and Endpoint with an invali… (#438) (26ce9d1), closes #438
TryFrom
API has been changed.- Upgraded to
tokio 1.0
andprost 0.7
. Channel
now implementsService
instead ofGrpcService
.
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)
- transport: Propagate errors in tls_config instead of unwrap/panic (#385) (3b9d6a6)
- Remove uses of pin_project::project attribute (#367) (5bda615)
- 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) - 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)
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)
- build: Add support for custom prost config (#318) (202093c)
- health: Add tonic-health server impl (da92dbf), closes #135 #135
- Add Status with Details Constructor (#308) (cfd59db)
- build: Decouple codgen from
prost
(#170) (f65cda1) - 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)
- 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)
- Sanitize custom metadata (#138) (f9502df)
- transport: Update builders to move self (#132) (85ef18f)
- 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
- expose tcp_nodelay for clients and servers (#145) (0eb9991)
- transport: Enable TCP_NODELAY. (#120) (0299509)
- transport: Expose tcp keepalive to clients & servers (#151) (caccfad)
- Add
Status
constructors (#137) (997241c)
- 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)
- transport: Add service multiplexing/routing (#99) (5b4f468), closes #29
- transport: Change channel connect to be async (#107) (5c2f4db)
- Add
IntoRequest
andIntoStreamingRequest
traits (#66) (4bb087b)
- 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)