01cba4992c
* Update documentation url in cargo tomls * Bump versions to 0.9.1 * Update guides * Add prepare/publish scripts * Update changelog
53 KiB
53 KiB
v0.9.1 (2023-04-03)
Features
- transport: Update
rustlsto0.21(#1340)
v0.9.0 (2023-03-31)
All tonic-* crates owned by this repository will now be versioned together to make it easier to understand which crate matches the core tonic crate version.
Breaking Changes
- All crates bumped to 2021 edition
tonic-healthandtonic-reflectioninternal protobuf module renamed.- Default decoding message limit set to
4MiBby default.
Bug Fixes
- 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
enableand update docs (#1326) (a9db219)
Features
- 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_addrtoRequest 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
DebugInfoerror message type (#1179) (3076e82) - types: Expose FILE_DESCRIPTOR_SET (#1210) (cc42d1f)
- core: Make some functionality of Status public (#1256)
- core: Expose Response#into_parts and Response#from_parts (#1263)
- build: Allow setting skip_protoc_run on the prost Builder (#1318)
v0.8.4 (2022-11-29)
This release only contains a release for tonic-build.
Bug Fixes
v0.8.3 (2022-11-28)
note: this version has been yanked due to a typo in the CodeGenBuilder
type.
Included in this release is also the sub-crate major version bumps:
tonic-healthhas been bumped to0.8.0tonic-reflectionhas been bumped to0.6.0tonic-webhas been bumped to0.5.0
Bug Fixes
- do not panic while encoding oversized bodies (#1142) (33e22bb), closes #1141
- reflection, health: Remove transport feature (#1112) (7153289)
Features
- build: Add
build_transportbuilder option (#1130) (1f5bc9b) - build: Add
CodeGenBuilder(#1154) (c4525ba) - build: Add disable_comments option (#1127) (e188521)
- Expose
Request#into_partsandRequest#from_parts(#1118) (b409ddd) - transport: add
from_listenerforTcpIncoming(#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)
Bug Fixes
Features
- tonic: add
Result<T>type alias forstd::result::Result<T, tonic::Status>(#1085) (56ff45d) - build: add
cleanup-markdownfeature flag (#1086) (c1b08df) - tonic: impl
CloneforStatususingArc(#1076) (ee3d0df) - transport: Expose hyper's H2 adaptive window on server (#1071) (919d28b)
0.8.1 (2022-09-07)
Features
- transport: Expose hyper's H2 adaptive window on server (#1071) (919d28b)
- Reduce the amount of monomorphized code.
- Expose
Extensions::into_httpandStatus::from_error. - health: Remove
build.rsand commit generated code.
0.8.0 (2022-07-29)
Features
- Add
Grpc::with_originfor clients (#1017) (10f6d2f) - build: Add option to emit rerun-if-changed instructions (#1021) (1d2083a)
- build: Better support for custom codecs (#999) (de2e4ac)
- Decouple
NamedServicefrom thetransportfeature (#969) (feae96c) - reflection: Export server types.
- reflection: Add
with_service_name.
BREAKING CHANGES
- build:
CODEC_PATHmoved from const to fn - tonic Remove codegen depedency on
compressionfeature. - tonic Remove
compressionfeature in favor ofgzipfeature.
0.7.2 (2022-05-04)
Bug Fixes
- build: Reduce
Defaultbound requirement (#974) (4533a6e) - don't enable default features in tower (#972) (b4f9634)
- transport: Emit
HttpsUriWithoutTlsSupportonly with tls feature enabled (#996) (1dd5ad2)
Features
0.7.1 (2022-04-04)
Features
0.7.0 (2022-03-31)
Breaking Changes
- 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
Defaultbound 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)
Bug Fixes
- 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)
Features
- build: Expose Prost generation plugin (#947) (d4bd475)
- build: add constructor
from_arcfor gRPC servers (#875) (7179f7a) - health: Expose
HealthServicepublically (#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)
Bug Fixes
0.6.1 (2021-10-27)
Bug Fixes
0.6.0 (2021-10-25)
Breaking changes
- tonic: Remove
Syncrequirement for streams (#804) (23c1392) - tonic: change
connect_lazyto be infallible (#712) (2e47154) - build: split path types in compile (#721) (53ecc1f)
- Update
prostand friends to 0.9 (#791) (09805ec)
Bug Fixes
- build: Correctly convert
Emptyto()(#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)
Features
- 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)
Features
- health: Expose grpc_health_v1 file descriptor set (#620) (167e8cb), closes #619
- tonic: derive
CloneforRouterService(#714) (#714) (0a06603) - transport: Add
Connectedimpl forDuplexStream(#722) (#722) (0e33a02)
Bug Fixes
- build: remove unnecessary
Debugconstraint 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!
Breaking changes
prostbumped to0.8.BoxBodywas removed in favor of the version provided inhttp-body.- The
Connectedtrait has been modified to support more genericConnectionInfo. Streamingfixed to now returnNoneonce the stream has observed a trailingStatus, notifying the user that the stream has ended.- A new interceptor API.
Bug Fixes
- codec: Fix streaming reponses w/ many status (#689) (737ace3), closes #681
- build: fix
with_interceptornot 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)
Features
- build: support adding attributes to clients and servers (#684) (a948a8f)
- codec: compression support (#692) (0583cff)
- metadata: expose
IterMutandValuesMut(#639) (b0ec3ea) - metadata: remove manual
Send + Syncimpls for metadata types (#640) (e97f518) - tonic: add
h2::Erroras asourceforStatus(#612) (b90bb7b) - tonic: add
RequestandResponseextensions (#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_fnthe request rather than just the headers (#634) (7862a22) - tonic: Use
BoxBodyfromhttp-bodycrate (#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)
Features
- client: Add
Request::set_timeout(#615) (dae31d0) - transport: Configure TLS automatically when possible (#445) (b04c1c6)
- transport: Support timeouts with the
grpc-timeoutheader (#606) (9ff4f7b)
0.4.2 (2021-04-13)
Bug Fixes
- codec: Allocate inbound buffer once (#578) (1d2754f)
- reflection: Depend on correct version of build (#582) (db09093)
Features
- 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)
Features
- 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
RUSTFMTto findrustfmtbinary (#566) (ea56e2e), closes #566 - chore: add FromStr for Endpoint (#558) (f49d4bd), closes #558
Bug Fixes
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.
Bug Fixes
- 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)
Features
- 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
BREAKING CHANGES
TryFromAPI has been changed.- Upgraded to
tokio 1.0andprost 0.7. Channelnow implementsServiceinstead ofGrpcService.
0.3.1 (2020-08-20)
Bug Fixes
0.3.0 (2020-07-13)
Bug Fixes
Status::detailsleaking 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)
Features
- 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-typescrate (#391) (ea7fe66) - Add
Displayimplementation 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)
Bug Fixes
- 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)
Features
0.2.0 (2020-04-01)
Bug Fixes
- build: Allow non_camel_case_types on codegen structs (224280d), closes #295
- build: Don't replace extern_paths (#261) (1b3d107)
- build: Ignore non
.rsfiles 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)
Features
- 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)
Bug Fixes
- 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)
Bug Fixes
- build: Remove default impl for Server traits (#229) (a41f55a)
- transport: Improve
Errortype (#217) (ec1f37e)
chore
Features
- Add gRPC interceptors (#232) (eba7ec7)
- build: Add extern_path config support (#223) (e034288)
- codec: Introduce
Decoder/Encodertraits (#208) (0fa2bf1) - transport: Add
serve_with_incoming_shutdown(#220) (a66595b) - transport: Add server side peer cert support (#228) (af807c3)
BREAKING CHANGES
- Rename
ServiceNametoNamedService. - removed
interceptor_fnandintercep_headers_fnfromtransportin favor of usingtonic::Interceptor. - codec: Add new
Decoder/Encodertraits and useEncodeBuf/DecodeBufoverBytesMutdirectly. - build: remove default implementations for server traits.
0.1.0-beta.1 (2019-12-19)
Bug Fixes
- 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)
Features
- transport: Add
remote_addrtoRequeston 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
Statusconstructors (#137) (997241c)
BREAKING CHANGES
- 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)
Bug Fixes
- 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)
Features
- transport: Add service multiplexing/routing (#99) (5b4f468), closes #29
- transport: Change channel connect to be async (#107) (5c2f4db)
- Add
IntoRequestandIntoStreamingRequesttraits (#66) (4bb087b)
BREAKING CHANGES
- transport:
Endpoint::channelwas removed in favor of an asyncEndpoint::connect.
0.1.0-alpha.4 (2019-10-23)
Bug Fixes
- build: Fix service and rpc name conflict (#92) (1dbde95), closes #89
- client: Use
Streaminstead ofTrySteamfor client calls (#61) (7eda823) - codec: Properly decode partial DATA frames (#83) (9079e0f)
- transport: Rename server tls config method (#73) (2a4bdb2)
Features
BREAKING CHANGES
- transport:
rustls_client_configfor the server has been renamed torustls_server_config.
0.1.0-alpha.3 (2019-10-09)
Features
- 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)
Bug Fixes
- 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)