Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/hyperium/tonic
Browse files Browse the repository at this point in the history
  • Loading branch information
jenr24-architect committed Oct 23, 2024
2 parents c2c736b + d61a55f commit b7afdbf
Show file tree
Hide file tree
Showing 18 changed files with 46 additions and 51 deletions.
13 changes: 3 additions & 10 deletions codegen/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,19 +78,12 @@ fn codegen(
.tempdir()
.unwrap();

let iface_files: Vec<PathBuf> = iface_files
.iter()
.map(|&path| root_dir.join(path))
.collect();

let include_dirs: Vec<PathBuf> = include_dirs
.iter()
.map(|&path| root_dir.join(path))
.collect();
let iface_files = iface_files.iter().map(|&path| root_dir.join(path));
let include_dirs = include_dirs.iter().map(|&path| root_dir.join(path));
let out_dir = root_dir.join(out_dir);
let file_descriptor_set_path = root_dir.join(file_descriptor_set_path);

let fds = protox::compile(&iface_files, &include_dirs).unwrap();
let fds = protox::compile(iface_files, include_dirs).unwrap();

write_fds(&fds, &file_descriptor_set_path);

Expand Down
4 changes: 2 additions & 2 deletions examples/helloworld-tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,12 @@ name = "helloworld-client"
path = "src/client.rs"

[dependencies]
tonic = "0.12"
tonic = "0.13"
prost = "0.13"
tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] }

[build-dependencies]
tonic-build = "0.12"
tonic-build = "0.13"
```

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:
Expand Down
4 changes: 2 additions & 2 deletions examples/routeguide-tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ Edit `Cargo.toml` and add all the dependencies we'll need for this example:

```toml
[dependencies]
tonic = "0.12"
tonic = "0.13"
prost = "0.13"
tokio = { version = "1.0", features = ["rt-multi-thread", "macros", "sync", "time"] }
tokio-stream = "0.1"
Expand All @@ -185,7 +185,7 @@ serde_json = "1.0"
rand = "0.8"

[build-dependencies]
tonic-build = "0.12"
tonic-build = "0.13"
```

Create a `build.rs` file at the root of your crate:
Expand Down
4 changes: 1 addition & 3 deletions examples/src/tower/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,7 @@ mod service {
}

fn call(&mut self, req: Request<BoxBody>) -> Self::Future {
// This is necessary because tonic internally uses `tower::buffer::Buffer`.
// See https://github.com/tower-rs/tower/issues/547#issuecomment-767629149
// for details on why this is necessary
// See: https://docs.rs/tower/latest/tower/trait.Service.html#be-careful-when-cloning-inner-services
let clone = self.inner.clone();
let mut inner = std::mem::replace(&mut self.inner, clone);

Expand Down
4 changes: 1 addition & 3 deletions examples/src/tower/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,7 @@ where
}

fn call(&mut self, req: http::Request<ReqBody>) -> Self::Future {
// This is necessary because tonic internally uses `tower::buffer::Buffer`.
// See https://github.com/tower-rs/tower/issues/547#issuecomment-767629149
// for details on why this is necessary
// See: https://docs.rs/tower/latest/tower/trait.Service.html#be-careful-when-cloning-inner-services
let clone = self.inner.clone();
let mut inner = std::mem::replace(&mut self.inner, clone);

Expand Down
6 changes: 3 additions & 3 deletions tonic-build/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ categories = ["network-programming", "asynchronous"]
description = """
Codegen module of `tonic` gRPC implementation.
"""
documentation = "https://docs.rs/tonic-build/0.12.3"
documentation = "https://docs.rs/tonic-build/0.13.0"
edition = "2021"
homepage = "https://github.com/hyperium/tonic"
keywords = ["rpc", "grpc", "async", "codegen", "protobuf"]
license = "MIT"
name = "tonic-build"
readme = "README.md"
repository = "https://github.com/hyperium/tonic"
version = "0.12.3"
version = "0.13.0"

[dependencies]
prettyplease = { version = "0.2" }
Expand All @@ -25,7 +25,7 @@ syn = "2.0"
[features]
default = ["transport", "prost"]
prost = ["prost-build", "dep:prost-types"]
cleanup-markdown = ["prost", "prost-build/cleanup-markdown"]
cleanup-markdown = ["prost-build?/cleanup-markdown"]
transport = []

[package.metadata.docs.rs]
Expand Down
5 changes: 3 additions & 2 deletions tonic-build/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
//! # Feature flags
//!
//! - `cleanup-markdown`: Enables cleaning up documentation from the generated code. Useful
//! when documentation of the generated code fails `cargo test --doc` for example.
//! when documentation of the generated code fails `cargo test --doc` for example. The
//! `prost` feature must be enabled to use this feature.
//! - `prost`: Enables usage of prost generator (enabled by default).
//! - `transport`: Enables generation of `connect` method using `tonic::transport::Channel`
//! (enabled by default).
Expand Down Expand Up @@ -70,7 +71,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.12.3")]
#![doc(html_root_url = "https://docs.rs/tonic-build/0.13.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))]
Expand Down
8 changes: 4 additions & 4 deletions tonic-health/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ categories = ["network-programming", "asynchronous"]
description = """
Health Checking module of `tonic` gRPC implementation.
"""
documentation = "https://docs.rs/tonic-health/0.12.3"
documentation = "https://docs.rs/tonic-health/0.13.0"
edition = "2021"
homepage = "https://github.com/hyperium/tonic"
keywords = ["rpc", "grpc", "async", "healthcheck"]
license = "MIT"
name = "tonic-health"
readme = "README.md"
repository = "https://github.com/hyperium/tonic"
version = "0.12.3"
version = "0.13.0"

[features]
default = ["transport"]
Expand All @@ -23,12 +23,12 @@ async-stream = "0.3"
prost = "0.13"
tokio = {version = "1.0", features = ["sync"]}
tokio-stream = "0.1"
tonic = { version = "0.12", path = "../tonic", default-features = false, features = ["codegen", "prost"] }
tonic = { version = "0.13.0", path = "../tonic", default-features = false, features = ["codegen", "prost"] }

[dev-dependencies]
tokio = {version = "1.0", features = ["rt-multi-thread", "macros"]}
tokio-stream = "0.1"
prost-types = "0.13"
prost-types = "0.13.0"

[package.metadata.cargo_check_external_types]
allowed_external_types = [
Expand Down
2 changes: 1 addition & 1 deletion tonic-health/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.12.3")]
#![doc(html_root_url = "https://docs.rs/tonic-health/0.13.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))]
Expand Down
8 changes: 4 additions & 4 deletions tonic-reflection/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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.12.3"
documentation = "https://docs.rs/tonic-reflection/0.13.0"
keywords = ["rpc", "grpc", "async", "reflection"]
license = "MIT"
name = "tonic-reflection"
readme = "README.md"
repository = "https://github.com/hyperium/tonic"
version = "0.12.3"
version = "0.13.0"

[package.metadata.docs.rs]
all-features = true
Expand All @@ -30,10 +30,10 @@ 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.12", path = "../tonic", default-features = false, features = ["codegen", "prost"] }
tonic = { version = "0.13.0", path = "../tonic", default-features = false, features = ["codegen", "prost"] }

[dev-dependencies]
tonic = { version = "0.12", path = "../tonic", default-features = false, features = ["transport"] }
tonic = { version = "0.13.0", path = "../tonic", default-features = false, features = ["transport"] }

[package.metadata.cargo_check_external_types]
allowed_external_types = [
Expand Down
2 changes: 1 addition & 1 deletion tonic-reflection/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.12.3")]
#![doc(html_root_url = "https://docs.rs/tonic-reflection/0.13.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))]
Expand Down
6 changes: 3 additions & 3 deletions tonic-types/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,20 @@ 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.12.3"
documentation = "https://docs.rs/tonic-types/0.13.0"
edition = "2021"
homepage = "https://github.com/hyperium/tonic"
keywords = ["rpc", "grpc", "protobuf"]
license = "MIT"
name = "tonic-types"
readme = "README.md"
repository = "https://github.com/hyperium/tonic"
version = "0.12.3"
version = "0.13.0"

[dependencies]
prost = "0.13"
prost-types = "0.13"
tonic = { version = "0.12", path = "../tonic", default-features = false }
tonic = { version = "0.13.0", path = "../tonic", default-features = false }

[package.metadata.cargo_check_external_types]
allowed_external_types = [
Expand Down
2 changes: 1 addition & 1 deletion tonic-types/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.12.3")]
#![doc(html_root_url = "https://docs.rs/tonic-types/0.13.0")]
#![doc(issue_tracker_base_url = "https://github.com/hyperium/tonic/issues/")]

mod generated {
Expand Down
6 changes: 3 additions & 3 deletions tonic-web/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ categories = ["network-programming", "asynchronous"]
description = """
grpc-web protocol translation for tonic services.
"""
documentation = "https://docs.rs/tonic-web/0.12.3"
documentation = "https://docs.rs/tonic-web/0.13.0"
edition = "2021"
homepage = "https://github.com/hyperium/tonic"
keywords = ["rpc", "grpc", "grpc-web"]
license = "MIT"
name = "tonic-web"
readme = "README.md"
repository = "https://github.com/hyperium/tonic"
version = "0.12.3"
version = "0.13.0"

[dependencies]
base64 = "0.22"
Expand All @@ -22,7 +22,7 @@ http = "1"
http-body = "1"
http-body-util = "0.1"
pin-project = "1"
tonic = { version = "0.12", path = "../tonic", default-features = false }
tonic = { version = "0.13.0", path = "../tonic", default-features = false }
tower-service = "0.3"
tower-layer = "0.3"
tower-http = { version = "0.6", features = ["cors"] }
Expand Down
2 changes: 1 addition & 1 deletion tonic-web/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
rust_2018_idioms,
unreachable_pub
)]
#![doc(html_root_url = "https://docs.rs/tonic-web/0.12.3")]
#![doc(html_root_url = "https://docs.rs/tonic-web/0.13.0")]
#![doc(issue_tracker_base_url = "https://github.com/hyperium/tonic/issues/")]

pub use call::GrpcWebCall;
Expand Down
4 changes: 2 additions & 2 deletions tonic/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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.12.3"
documentation = "https://docs.rs/tonic/0.13.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.12.3"
version = "0.13.0"

[features]
codegen = ["dep:async-trait"]
Expand Down
2 changes: 1 addition & 1 deletion tonic/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,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.12.3")]
#![doc(html_root_url = "https://docs.rs/tonic/0.13.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))]
Expand Down
15 changes: 10 additions & 5 deletions tonic/src/transport/channel/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ use http::{
uri::{InvalidUri, Uri},
Request, Response,
};
use hyper_util::client::legacy::connect::Connection as HyperConnection;
use std::{
fmt,
future::Future,
Expand Down Expand Up @@ -144,12 +143,15 @@ impl Channel {
(Self::balance(list, DEFAULT_BUFFER_SIZE, executor), tx)
}

pub(crate) fn new<C>(connector: C, endpoint: Endpoint) -> Self
/// Create a new [`Channel`] using a custom connector to the provided [Endpoint].
///
/// This is a lower level API, prefer to use [`Endpoint::connect_lazy`] if you are not using a custom connector.
pub fn new<C>(connector: C, endpoint: Endpoint) -> Self
where
C: Service<Uri> + Send + 'static,
C::Error: Into<crate::BoxError> + Send,
C::Future: Send,
C::Response: rt::Read + rt::Write + HyperConnection + Unpin + Send + 'static,
C::Response: rt::Read + rt::Write + Unpin + Send + 'static,
{
let buffer_size = endpoint.buffer_size.unwrap_or(DEFAULT_BUFFER_SIZE);
let executor = endpoint.executor.clone();
Expand All @@ -162,12 +164,15 @@ impl Channel {
Channel { svc }
}

pub(crate) async fn connect<C>(connector: C, endpoint: Endpoint) -> Result<Self, super::Error>
/// Connect to the provided [`Endpoint`] using the provided connector, and return a new [`Channel`].
///
/// This is a lower level API, prefer to use [`Endpoint::connect`] if you are not using a custom connector.
pub async fn connect<C>(connector: C, endpoint: Endpoint) -> Result<Self, super::Error>
where
C: Service<Uri> + Send + 'static,
C::Error: Into<crate::BoxError> + Send,
C::Future: Unpin + Send,
C::Response: rt::Read + rt::Write + HyperConnection + Unpin + Send + 'static,
C::Response: rt::Read + rt::Write + Unpin + Send + 'static,
{
let buffer_size = endpoint.buffer_size.unwrap_or(DEFAULT_BUFFER_SIZE);
let executor = endpoint.executor.clone();
Expand Down

0 comments on commit b7afdbf

Please sign in to comment.