diff --git a/CHANGELOG.md b/CHANGELOG.md index 422f34d03..0c4a8e392 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,42 @@ +# [v0.12.0](https://github.com/hyperium/tonic/compare/v0.11.0...v0.12.0) (2024-06-20) + +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](https://github.com/hyperium/tonic/issues/1599)) ([18a2b30](https://github.com/hyperium/tonic/commit/18a2b30922460be02829706cf9dd0cd1ec6a19c1)) +* **channel:** Make channel feature additive ([#1574](https://github.com/hyperium/tonic/issues/1574)) ([b947e1a](https://github.com/hyperium/tonic/commit/b947e1ac0727ceb0a0267a30854ada4ba18931db)) +* **codec:** Make error when not utf8 value in compression encoding ([#1768](https://github.com/hyperium/tonic/issues/1768)) ([f8e1f87](https://github.com/hyperium/tonic/commit/f8e1f87eb862676147fd6215b58c9090d259104d)) +* Implement http_body::Body::size_hint for custom body ([#1713](https://github.com/hyperium/tonic/issues/1713)) ([9728c01](https://github.com/hyperium/tonic/commit/9728c01132bd64dca046675198edc751c4547966)) +* Make boxed function public ([#1754](https://github.com/hyperium/tonic/issues/1754)) ([2cc868f](https://github.com/hyperium/tonic/commit/2cc868f80b20379d6635ac182f523b4971d016b7)) +* Relax GrpcMethod lifetime ([#1598](https://github.com/hyperium/tonic/issues/1598)) ([68bf17d](https://github.com/hyperium/tonic/commit/68bf17d67ad71af44c34d565566c3dd58ea3ab87)) +* **tls:** Add ability to add multiple ca certificates ([#1724](https://github.com/hyperium/tonic/issues/1724)) ([3457f92](https://github.com/hyperium/tonic/commit/3457f9203226f88524b31bf5d64ce6e5ec7c993c)) +* **tls:** Use rustls_pki_types::CertificateDer to describe DER encoded certificate ([#1707](https://github.com/hyperium/tonic/issues/1707)) ([96a8cbc](https://github.com/hyperium/tonic/commit/96a8cbc04d0cad6d30d2944dba6b32aac8975f91)) +* **tls:** Remove tls roots implicit configuration ([#1731](https://github.com/hyperium/tonic/issues/1731)) ([de73617](https://github.com/hyperium/tonic/commit/de736171f20ec5d485c26ee5eda4a9ccf5fc75e5)) +* **transport:** Make service router independent from transport ([#1572](https://github.com/hyperium/tonic/issues/1572)) ([da48235](https://github.com/hyperium/tonic/commit/da482359933f52e84c0263b28a5a83ab1efe6c33)) +* **transport:** Make transport server and channel independent ([#1630](https://github.com/hyperium/tonic/issues/1630)) ([654289f](https://github.com/hyperium/tonic/commit/654289fdc24f56d6845ec0ceb233deb46b640fac)) +* **transport:** Rename reexported axum body ([#1752](https://github.com/hyperium/tonic/issues/1752)) ([5d7bfc2](https://github.com/hyperium/tonic/commit/5d7bfc22c590982463f2d93464b0a7fb90e17083)) +* Use http::Extensions directly ([#1710](https://github.com/hyperium/tonic/issues/1710)) ([ed95d27](https://github.com/hyperium/tonic/commit/ed95d2762146f001970b74941f3bad77b7560426)) + +### Bug Fixes + +* **tonic:** flush accumulated ready messages when status received ([#1756](https://github.com/hyperium/tonic/issues/1756)) ([d312dcc](https://github.com/hyperium/tonic/commit/d312dcc0ec362cb12f6e54072622761d7466a650)), closes [#1423](https://github.com/hyperium/tonic/issues/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) + + +[v1.8.8]: https://github.com/fullstorydev/grpcurl/releases/tag/v1.8.8 +[proto]: https://github.com/grpc/grpc/blob/master/src/proto/grpc/reflection/v1/reflection.proto +[grpcurl]: https://github.com/fullstorydev/grpcurl + + # [0.11.0](https://github.com/hyperium/tonic/compare/v0.10.2...v0.11.0) (2024-02-08) BREAKING CHANGES: diff --git a/examples/helloworld-tutorial.md b/examples/helloworld-tutorial.md index d67137c35..1977bfbf1 100644 --- a/examples/helloworld-tutorial.md +++ b/examples/helloworld-tutorial.md @@ -112,12 +112,12 @@ name = "helloworld-client" path = "src/client.rs" [dependencies] -tonic = "0.11" +tonic = "0.12" prost = "0.12" tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } [build-dependencies] -tonic-build = "0.11" +tonic-build = "0.12" ``` We include `tonic-build` as a useful way to incorporate the generation of our client and server gRPC code into the build process of our application. We will setup this build process now: diff --git a/examples/routeguide-tutorial.md b/examples/routeguide-tutorial.md index d1e26dfa1..564ccc66a 100644 --- a/examples/routeguide-tutorial.md +++ b/examples/routeguide-tutorial.md @@ -174,7 +174,7 @@ Edit `Cargo.toml` and add all the dependencies we'll need for this example: ```toml [dependencies] -tonic = "0.11" +tonic = "0.12" prost = "0.12" tokio = { version = "1.0", features = ["rt-multi-thread", "macros", "sync", "time"] } tokio-stream = "0.1" @@ -185,7 +185,7 @@ serde_json = "1.0" rand = "0.8" [build-dependencies] -tonic-build = "0.11" +tonic-build = "0.12" ``` Create a `build.rs` file at the root of your crate: diff --git a/tonic-build/Cargo.toml b/tonic-build/Cargo.toml index 72dbfa1cc..d3350047a 100644 --- a/tonic-build/Cargo.toml +++ b/tonic-build/Cargo.toml @@ -4,7 +4,7 @@ categories = ["network-programming", "asynchronous"] description = """ Codegen module of `tonic` gRPC implementation. """ -documentation = "https://docs.rs/tonic-build/0.11.0" +documentation = "https://docs.rs/tonic-build/0.12.0" edition = "2021" homepage = "https://github.com/hyperium/tonic" keywords = ["rpc", "grpc", "async", "codegen", "protobuf"] @@ -12,7 +12,7 @@ license = "MIT" name = "tonic-build" readme = "README.md" repository = "https://github.com/hyperium/tonic" -version = "0.11.0" +version = "0.12.0" [dependencies] prettyplease = { version = "0.2" } diff --git a/tonic-build/src/lib.rs b/tonic-build/src/lib.rs index 1d9cf2507..ff3f36579 100644 --- a/tonic-build/src/lib.rs +++ b/tonic-build/src/lib.rs @@ -70,7 +70,7 @@ html_logo_url = "https://raw.githubusercontent.com/tokio-rs/website/master/public/img/icons/tonic.svg" )] #![deny(rustdoc::broken_intra_doc_links)] -#![doc(html_root_url = "https://docs.rs/tonic-build/0.11.0")] +#![doc(html_root_url = "https://docs.rs/tonic-build/0.12.0")] #![doc(issue_tracker_base_url = "https://github.com/hyperium/tonic/issues/")] #![doc(test(no_crate_inject, attr(deny(rust_2018_idioms))))] #![cfg_attr(docsrs, feature(doc_auto_cfg))] diff --git a/tonic-health/Cargo.toml b/tonic-health/Cargo.toml index 1d9e159cb..a84e54188 100644 --- a/tonic-health/Cargo.toml +++ b/tonic-health/Cargo.toml @@ -4,7 +4,7 @@ categories = ["network-programming", "asynchronous"] description = """ Health Checking module of `tonic` gRPC implementation. """ -documentation = "https://docs.rs/tonic-health/0.11.0" +documentation = "https://docs.rs/tonic-health/0.12.0" edition = "2021" homepage = "https://github.com/hyperium/tonic" keywords = ["rpc", "grpc", "async", "healthcheck"] @@ -12,7 +12,7 @@ license = "MIT" name = "tonic-health" readme = "README.md" repository = "https://github.com/hyperium/tonic" -version = "0.11.0" +version = "0.12.0" [features] default = ["transport"] @@ -23,7 +23,7 @@ async-stream = "0.3" prost = "0.13" tokio = {version = "1.0", features = ["sync"]} tokio-stream = "0.1" -tonic = { version = "0.11", path = "../tonic", default-features = false, features = ["codegen", "prost"] } +tonic = { version = "0.12", path = "../tonic", default-features = false, features = ["codegen", "prost"] } [dev-dependencies] tokio = {version = "1.0", features = ["rt-multi-thread", "macros"]} diff --git a/tonic-health/src/lib.rs b/tonic-health/src/lib.rs index aef60c0fb..fb781965c 100644 --- a/tonic-health/src/lib.rs +++ b/tonic-health/src/lib.rs @@ -16,7 +16,7 @@ html_logo_url = "https://raw.githubusercontent.com/tokio-rs/website/master/public/img/icons/tonic.svg" )] #![deny(rustdoc::broken_intra_doc_links)] -#![doc(html_root_url = "https://docs.rs/tonic-health/0.11.0")] +#![doc(html_root_url = "https://docs.rs/tonic-health/0.12.0")] #![doc(issue_tracker_base_url = "https://github.com/hyperium/tonic/issues/")] #![doc(test(no_crate_inject, attr(deny(rust_2018_idioms))))] #![cfg_attr(docsrs, feature(doc_auto_cfg))] diff --git a/tonic-reflection/Cargo.toml b/tonic-reflection/Cargo.toml index d12ede7a8..870fb4bd2 100644 --- a/tonic-reflection/Cargo.toml +++ b/tonic-reflection/Cargo.toml @@ -9,13 +9,13 @@ Server Reflection module of `tonic` gRPC implementation. """ edition = "2021" homepage = "https://github.com/hyperium/tonic" -documentation = "https://docs.rs/tonic-reflection/0.11.0" +documentation = "https://docs.rs/tonic-reflection/0.12.0" keywords = ["rpc", "grpc", "async", "reflection"] license = "MIT" name = "tonic-reflection" readme = "README.md" repository = "https://github.com/hyperium/tonic" -version = "0.11.0" +version = "0.12.0" [package.metadata.docs.rs] all-features = true @@ -30,7 +30,7 @@ prost = "0.13" prost-types = {version = "0.13", optional = true} tokio = { version = "1.0", features = ["sync", "rt"], optional = true } tokio-stream = {version = "0.1", features = ["net"], optional = true } -tonic = { version = "0.11", path = "../tonic", default-features = false, features = ["codegen", "prost"] } +tonic = { version = "0.12", path = "../tonic", default-features = false, features = ["codegen", "prost"] } [dev-dependencies] -tonic = { version = "0.11", path = "../tonic", default-features = false, features = ["transport"] } +tonic = { version = "0.12", path = "../tonic", default-features = false, features = ["transport"] } diff --git a/tonic-reflection/src/lib.rs b/tonic-reflection/src/lib.rs index a3eb89c48..d4b0c3dec 100644 --- a/tonic-reflection/src/lib.rs +++ b/tonic-reflection/src/lib.rs @@ -10,7 +10,7 @@ html_logo_url = "https://github.com/hyperium/tonic/raw/master/.github/assets/tonic-docs.png" )] #![deny(rustdoc::broken_intra_doc_links)] -#![doc(html_root_url = "https://docs.rs/tonic-reflection/0.11.0")] +#![doc(html_root_url = "https://docs.rs/tonic-reflection/0.12.0")] #![doc(issue_tracker_base_url = "https://github.com/hyperium/tonic/issues/")] #![doc(test(no_crate_inject, attr(deny(rust_2018_idioms))))] #![cfg_attr(docsrs, feature(doc_auto_cfg))] diff --git a/tonic-types/Cargo.toml b/tonic-types/Cargo.toml index 3c1db026f..d5c88c183 100644 --- a/tonic-types/Cargo.toml +++ b/tonic-types/Cargo.toml @@ -7,7 +7,7 @@ categories = ["web-programming", "network-programming", "asynchronous"] description = """ A collection of useful protobuf types that can be used with `tonic`. """ -documentation = "https://docs.rs/tonic-types/0.11.0" +documentation = "https://docs.rs/tonic-types/0.12.0" edition = "2021" homepage = "https://github.com/hyperium/tonic" keywords = ["rpc", "grpc", "protobuf"] @@ -15,9 +15,9 @@ license = "MIT" name = "tonic-types" readme = "README.md" repository = "https://github.com/hyperium/tonic" -version = "0.11.0" +version = "0.12.0" [dependencies] prost = "0.13" prost-types = "0.13" -tonic = {version = "0.11", path = "../tonic", default-features = false} +tonic = { version = "0.12", path = "../tonic", default-features = false } diff --git a/tonic-types/src/lib.rs b/tonic-types/src/lib.rs index fe2886a60..13384c854 100644 --- a/tonic-types/src/lib.rs +++ b/tonic-types/src/lib.rs @@ -150,7 +150,7 @@ html_logo_url = "https://raw.githubusercontent.com/tokio-rs/website/master/public/img/icons/tonic.svg" )] #![deny(rustdoc::broken_intra_doc_links)] -#![doc(html_root_url = "https://docs.rs/tonic-types/0.11.0")] +#![doc(html_root_url = "https://docs.rs/tonic-types/0.12.0")] #![doc(issue_tracker_base_url = "https://github.com/hyperium/tonic/issues/")] mod generated { diff --git a/tonic-web/Cargo.toml b/tonic-web/Cargo.toml index 157605a95..22a58a10f 100644 --- a/tonic-web/Cargo.toml +++ b/tonic-web/Cargo.toml @@ -4,7 +4,7 @@ categories = ["network-programming", "asynchronous"] description = """ grpc-web protocol translation for tonic services. """ -documentation = "https://docs.rs/tonic-web/0.11.0" +documentation = "https://docs.rs/tonic-web/0.12.0" edition = "2021" homepage = "https://github.com/hyperium/tonic" keywords = ["rpc", "grpc", "grpc-web"] @@ -12,7 +12,7 @@ license = "MIT" name = "tonic-web" readme = "README.md" repository = "https://github.com/hyperium/tonic" -version = "0.11.0" +version = "0.12.0" [dependencies] base64 = "0.22" @@ -22,11 +22,11 @@ http = "1" http-body = "1" http-body-util = "0.1" pin-project = "1" -tonic = {version = "0.11", path = "../tonic", default-features = false} +tonic = { version = "0.12", path = "../tonic", default-features = false } tower-service = "0.3" tower-layer = "0.3" tower-http = { version = "0.5", features = ["cors"] } tracing = "0.1" [dev-dependencies] -tokio = {version = "1", features = ["macros", "rt"]} +tokio = { version = "1", features = ["macros", "rt"] } diff --git a/tonic-web/src/lib.rs b/tonic-web/src/lib.rs index 50ed8c0a8..b30fb1887 100644 --- a/tonic-web/src/lib.rs +++ b/tonic-web/src/lib.rs @@ -94,7 +94,7 @@ rust_2018_idioms, unreachable_pub )] -#![doc(html_root_url = "https://docs.rs/tonic-web/0.11.0")] +#![doc(html_root_url = "https://docs.rs/tonic-web/0.12.0")] #![doc(issue_tracker_base_url = "https://github.com/hyperium/tonic/issues/")] pub use call::GrpcWebCall; diff --git a/tonic/Cargo.toml b/tonic/Cargo.toml index 15305f5e5..6cbcdc512 100644 --- a/tonic/Cargo.toml +++ b/tonic/Cargo.toml @@ -13,14 +13,14 @@ categories = ["web-programming", "network-programming", "asynchronous"] description = """ A gRPC over HTTP/2 implementation focused on high performance, interoperability, and flexibility. """ -documentation = "https://docs.rs/tonic/0.11.0" +documentation = "https://docs.rs/tonic/0.12.0" edition = "2021" homepage = "https://github.com/hyperium/tonic" keywords = ["rpc", "grpc", "async", "futures", "protobuf"] license = "MIT" readme = "../README.md" repository = "https://github.com/hyperium/tonic" -version = "0.11.0" +version = "0.12.0" [features] codegen = ["dep:async-trait"] diff --git a/tonic/src/lib.rs b/tonic/src/lib.rs index c0c5ea2f6..3778b5cdf 100644 --- a/tonic/src/lib.rs +++ b/tonic/src/lib.rs @@ -88,7 +88,7 @@ #![doc( html_logo_url = "https://raw.githubusercontent.com/tokio-rs/website/master/public/img/icons/tonic.svg" )] -#![doc(html_root_url = "https://docs.rs/tonic/0.11.0")] +#![doc(html_root_url = "https://docs.rs/tonic/0.12.0")] #![doc(issue_tracker_base_url = "https://github.com/hyperium/tonic/issues/")] #![doc(test(no_crate_inject, attr(deny(rust_2018_idioms))))] #![cfg_attr(docsrs, feature(doc_auto_cfg))]