diff --git a/CHANGELOG.md b/CHANGELOG.md index 217d9f2..2ee3fe7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,46 @@ +# [0.5.0](https://github.com/hyperium/tonic/compare/v0.4.3...v0.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 + +* `prost` bumped to `0.8`. +* `BoxBody` was removed in favor of the version provided in `http-body`. +* The `Connected` trait has been modified to support more generic `ConnectionInfo`. +* `Streaming` fixed to now return `None` once the stream has observed a trailing `Status`, notifying the user that the stream has ended. +* A new interceptor API. + +### Bug Fixes + +* **codec:** Fix streaming reponses w/ many status ([#689](https://github.com/hyperium/tonic/issues/689)) ([737ace3](https://github.com/hyperium/tonic/commit/737ace393d3d11fb179af939e5f1a5d16ebc2b82)), closes [#681](https://github.com/hyperium/tonic/issues/681) +* **build:** fix `with_interceptor` not building on Rust 1.51 ([#669](https://github.com/hyperium/tonic/issues/669)) ([9478fac](https://github.com/hyperium/tonic/commit/9478fac97984cf8291bf89c55eb9a02a06889e03)) +* **codec:** improve error message for invalid compression flag ([#663](https://github.com/hyperium/tonic/issues/663)) ([9cc14b7](https://github.com/hyperium/tonic/commit/9cc14b79fba9e789e215f7ea3fa40ccfaecc8e59)) +* **tonic:** don't include error's cause in Display impl ([#633](https://github.com/hyperium/tonic/issues/633)) ([31a3468](https://github.com/hyperium/tonic/commit/31a34681c7ba606e27615859d4b65dfcdcaa6f38)) +* **transport:** remove needless `BoxFuture` ([#644](https://github.com/hyperium/tonic/issues/644)) ([74ad0a9](https://github.com/hyperium/tonic/commit/74ad0a998fedb2507f6b2f035b961eb9bac5b494)) +* **web:** fix compilation ([#670](https://github.com/hyperium/tonic/issues/670)) ([e199387](https://github.com/hyperium/tonic/commit/e1993877c430906500aeda9ab1e3413e68ed483d)) + + +### Features + +* **build:** support adding attributes to clients and servers ([#684](https://github.com/hyperium/tonic/issues/684)) ([a948a8f](https://github.com/hyperium/tonic/commit/a948a8f884705b9f2a6df5c86d07cc6eb0bb1b7c)) +* **codec:** compression support ([#692](https://github.com/hyperium/tonic/issues/692)) ([0583cff](https://github.com/hyperium/tonic/commit/0583cff80f57ba071295416ee8828c3430851d0d)) +* **metadata:** expose `IterMut` and `ValuesMut` ([#639](https://github.com/hyperium/tonic/issues/639)) ([b0ec3ea](https://github.com/hyperium/tonic/commit/b0ec3ead344df44fc17e5ad22398ed2464768e63)) +* **metadata:** remove manual `Send + Sync` impls for metadata types ([#640](https://github.com/hyperium/tonic/issues/640)) ([e97f518](https://github.com/hyperium/tonic/commit/e97f5180250a567aead16fe9a8644216edc4bbb3)) +* **tonic:** add `h2::Error` as a `source` for `Status` ([#612](https://github.com/hyperium/tonic/issues/612)) ([b90bb7b](https://github.com/hyperium/tonic/commit/b90bb7bbc012207451fe2788a8efd69023312425)) +* **tonic:** add `Request` and `Response` extensions ([#642](https://github.com/hyperium/tonic/issues/642)) ([352b0f5](https://github.com/hyperium/tonic/commit/352b0f584be33bc49ca266698c9224d16a6825ff)) +* **tonic:** expose setting for `http2_adaptive_window` ([#657](https://github.com/hyperium/tonic/issues/657)) ([12815d0](https://github.com/hyperium/tonic/commit/12815d0a1d558eb9f661a85354336b04df1f5bab)) +* **tonic:** implement `From` for `i32` ([f33316d](https://github.com/hyperium/tonic/commit/f33316d5b32f6a44fa23ea12851f502c48bac5ea)) +* **tonic:** make it easier to add tower middleware to servers ([#651](https://github.com/hyperium/tonic/issues/651)) ([4d2667d](https://github.com/hyperium/tonic/commit/4d2667d1cb1b938756d20dafa3cccae1db23a831)) +* **tonic:** pass `trace_fn` the request rather than just the headers ([#634](https://github.com/hyperium/tonic/issues/634)) ([7862a22](https://github.com/hyperium/tonic/commit/7862a2259db8dc1af440604c6c582487a59a2709)) +* **tonic:** Use `BoxBody` from `http-body` crate ([#622](https://github.com/hyperium/tonic/issues/622)) ([4dda4cb](https://github.com/hyperium/tonic/commit/4dda4cbcca88fa46a7d8a6e4eabfb6d7c333617a)) +* **tonic-web:** implement grpc <-> grpc-web protocol translation ([#455](https://github.com/hyperium/tonic/issues/455)) ([c309063](https://github.com/hyperium/tonic/commit/c309063254dff42fd05afc5e56b0b0371b905758)) +* **transport:** Add `connect_with_connector_lazy` ([#696](https://github.com/hyperium/tonic/issues/696)) ([2a46ff5](https://github.com/hyperium/tonic/commit/2a46ff5c96415b217700353dadba74a80e5ad88c)), closes [#695](https://github.com/hyperium/tonic/issues/695) +* **transport:** Add a tls-webpki-roots feature to add trust roots from webpki-roots ([#660](https://github.com/hyperium/tonic/issues/660)) ([32173dc](https://github.com/hyperium/tonic/commit/32173dc7f6521bad8f26b055b6a86d807348f151)) +* **transport:** add connect timeout to `Endpoint` ([#662](https://github.com/hyperium/tonic/issues/662)) ([2b60a00](https://github.com/hyperium/tonic/commit/2b60a00614c5c4260ce0acaaa599da89bebfd267)) +* **transport:** provide generic access to connect info ([#647](https://github.com/hyperium/tonic/issues/647)) ([e5e3118](https://github.com/hyperium/tonic/commit/e5e311853bff347355722bc829d40f54e8954aee)) + + + # [0.4.3](https://github.com/hyperium/tonic/compare/v0.4.2...v0.4.3) (2021-04-29) ### Features @@ -304,4 +347,3 @@ an async `Endpoint::connect`. * **transport:** Expose http/2 settings ([#28](https://github.com/hyperium/tonic/issues/28)) ([0218d58](https://github.com/hyperium/tonic/commit/0218d58c282d6de6f300229677c99369d3ea20ed)) - diff --git a/examples/helloworld-tutorial.md b/examples/helloworld-tutorial.md index b32bcef..001407a 100644 --- a/examples/helloworld-tutorial.md +++ b/examples/helloworld-tutorial.md @@ -113,12 +113,12 @@ name = "helloworld-client" path = "src/client.rs" [dependencies] -tonic = "0.4" +tonic = "0.5" prost = "0.8" tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } [build-dependencies] -tonic-build = "0.4" +tonic-build = "0.5" ``` 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 f3cb630..9a36f5e 100644 --- a/examples/routeguide-tutorial.md +++ b/examples/routeguide-tutorial.md @@ -180,7 +180,7 @@ Edit `Cargo.toml` and add all the dependencies we'll need for this example: ```toml [dependencies] -tonic = "0.4" +tonic = "0.5" prost = "0.8" futures-core = "0.3" futures-util = "0.3" @@ -193,7 +193,7 @@ serde_json = "1.0" rand = "0.7" [build-dependencies] -tonic-build = "0.4" +tonic-build = "0.5" ``` Create a `build.rs` file at the root of your crate: diff --git a/tonic-build/Cargo.toml b/tonic-build/Cargo.toml index ed17263..eb85d42 100644 --- a/tonic-build/Cargo.toml +++ b/tonic-build/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "tonic-build" -version = "0.4.2" +version = "0.5.0" authors = ["Lucio Franco "] edition = "2018" license = "MIT" -documentation = "https://docs.rs/tonic-build/0.4.1/tonic_build/" +documentation = "https://docs.rs/tonic-build/0.5.0/tonic_build/" repository = "https://github.com/hyperium/tonic" homepage = "https://github.com/hyperium/tonic" description = """ diff --git a/tonic-build/src/lib.rs b/tonic-build/src/lib.rs index 40a51ca..f32c242 100644 --- a/tonic-build/src/lib.rs +++ b/tonic-build/src/lib.rs @@ -68,7 +68,7 @@ html_logo_url = "https://raw.githubusercontent.com/tokio-rs/website/master/public/img/icons/tonic.svg" )] #![deny(broken_intra_doc_links)] -#![doc(html_root_url = "https://docs.rs/tonic-build/0.4.2")] +#![doc(html_root_url = "https://docs.rs/tonic-build/0.5.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_cfg))] diff --git a/tonic-health/Cargo.toml b/tonic-health/Cargo.toml index 01498af..6a40ee5 100644 --- a/tonic-health/Cargo.toml +++ b/tonic-health/Cargo.toml @@ -6,7 +6,7 @@ edition = "2018" license = "MIT" repository = "https://github.com/hyperium/tonic" homepage = "https://github.com/hyperium/tonic" -documentation = "https://docs.rs/tonic-health/0.3.1/tonic-health/" +documentation = "https://docs.rs/tonic-health/0.4.0/tonic-health/" description = """ Health Checking module of `tonic` gRPC implementation. """ @@ -20,7 +20,7 @@ transport = ["tonic/transport"] [dependencies] tokio = { version = "1.0", features = ["sync"] } -tonic = { version = "0.4", path = "../tonic", features = ["codegen", "prost"] } +tonic = { version = "0.5", path = "../tonic", features = ["codegen", "prost"] } bytes = "1.0" prost = "0.8" tokio-stream = "0.1" @@ -30,4 +30,4 @@ async-stream = "0.3" tokio = { version = "1.0", features = ["rt-multi-thread", "macros"]} [build-dependencies] -tonic-build = { version = "0.4", path = "../tonic-build" } +tonic-build = { version = "0.5", path = "../tonic-build" } diff --git a/tonic-health/src/lib.rs b/tonic-health/src/lib.rs index 27604fe..fab1bae 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(broken_intra_doc_links)] -#![doc(html_root_url = "https://docs.rs/tonic-health/0.3.1")] +#![doc(html_root_url = "https://docs.rs/tonic-health/0.4.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_cfg))] diff --git a/tonic-reflection/Cargo.toml b/tonic-reflection/Cargo.toml index 874fded..fd370a1 100644 --- a/tonic-reflection/Cargo.toml +++ b/tonic-reflection/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tonic-reflection" -version = "0.1.0" +version = "0.2.0" authors = [ "James Nugent ", "Samani G. Gikandi " @@ -22,10 +22,10 @@ prost = "0.8" prost-types = "0.8" tokio = { version = "1.0", features = ["sync"] } tokio-stream = { version = "0.1", features = ["net"] } -tonic = { version = "0.4", path = "../tonic", features = ["codegen", "prost"] } +tonic = { version = "0.5", path = "../tonic", features = ["codegen", "prost"] } [build-dependencies] -tonic-build = { version = "0.4.1", path = "../tonic-build" } +tonic-build = { version = "0.5", path = "../tonic-build" } [dev-dependencies] futures = "0.3" diff --git a/tonic-reflection/src/lib.rs b/tonic-reflection/src/lib.rs index f80ae7e..7d46dbf 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(broken_intra_doc_links)] -#![doc(html_root_url = "https://docs.rs/tonic-reflection/0.1.0")] +#![doc(html_root_url = "https://docs.rs/tonic-reflection/0.2.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_cfg))] diff --git a/tonic-types/Cargo.toml b/tonic-types/Cargo.toml index de5343a..1c24687 100644 --- a/tonic-types/Cargo.toml +++ b/tonic-types/Cargo.toml @@ -4,7 +4,7 @@ version = "0.2.0" authors = ["Lucio Franco "] edition = "2018" license = "MIT" -documentation = "https://docs.rs/tonic-types/0.2.0/tonic-types/" +documentation = "https://docs.rs/tonic-types/0.3.0/tonic-types/" repository = "https://github.com/hyperium/tonic" homepage = "https://github.com/hyperium/tonic" description = """ diff --git a/tonic-web/Cargo.toml b/tonic-web/Cargo.toml index bc6b722..6f2be83 100644 --- a/tonic-web/Cargo.toml +++ b/tonic-web/Cargo.toml @@ -15,7 +15,7 @@ categories = ["network-programming", "asynchronous"] keywords = ["rpc", "grpc", "grpc-web"] [dependencies] -tonic = { path = "../tonic", default-features = false, features = ["transport"] } +tonic = { version = "0.5", path = "../tonic", default-features = false, features = ["transport"] } http = "0.2" base64 = "0.13" futures-core = "0.3" diff --git a/tonic/Cargo.toml b/tonic/Cargo.toml index c113c94..20f144f 100644 --- a/tonic/Cargo.toml +++ b/tonic/Cargo.toml @@ -7,12 +7,12 @@ name = "tonic" # - Cargo.toml # - README.md # - Update CHANGELOG.md. -# - Create "v0.4.x" git tag. -version = "0.4.3" +# - Create "v0.5.x" git tag. +version = "0.5.0" authors = ["Lucio Franco "] edition = "2018" license = "MIT" -documentation = "https://docs.rs/tonic/0.4.3/tonic/" +documentation = "https://docs.rs/tonic/0.5.0/tonic/" repository = "https://github.com/hyperium/tonic" homepage = "https://github.com/hyperium/tonic" description = """ diff --git a/tonic/src/lib.rs b/tonic/src/lib.rs index 7fb77a6..37474e9 100644 --- a/tonic/src/lib.rs +++ b/tonic/src/lib.rs @@ -79,7 +79,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.4.3")] +#![doc(html_root_url = "https://docs.rs/tonic/0.5.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_cfg))]