History log of /tonic/interop/ (Results 1 – 25 of 70)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
fc940ce111-Feb-2025 tottoto <[email protected]>

chore: Update to strum 0.27 (#2180)

78be69e931-Jan-2025 tottoto <[email protected]>

chore(interop): Replace repeat and take with repeat_n (#2170)

5c7a69ec11-Jan-2025 tottoto <[email protected]>

chore(interop): Use http-body-util WithTrailers (#2134)


/tonic/Cargo.toml
/tonic/README.md
/tonic/examples/Cargo.toml
/tonic/examples/src/mock/mock.rs
Cargo.toml
src/server.rs
/tonic/tests/compression/Cargo.toml
/tonic/tests/compression/src/bidirectional_stream.rs
/tonic/tests/compression/src/client_stream.rs
/tonic/tests/compression/src/compressing_request.rs
/tonic/tests/compression/src/compressing_response.rs
/tonic/tests/compression/src/server_stream.rs
/tonic/tests/compression/src/util.rs
/tonic/tests/integration_tests/tests/max_message_size.rs
/tonic/tests/integration_tests/tests/status.rs
/tonic/tonic-build/Cargo.toml
/tonic/tonic-build/src/lib.rs
/tonic/tonic-health/Cargo.toml
/tonic/tonic-health/src/lib.rs
/tonic/tonic-health/src/server.rs
/tonic/tonic-reflection/Cargo.toml
/tonic/tonic-reflection/src/lib.rs
/tonic/tonic-reflection/src/server/v1.rs
/tonic/tonic-reflection/src/server/v1alpha.rs
/tonic/tonic-reflection/tests/server.rs
/tonic/tonic-reflection/tests/versions.rs
/tonic/tonic-types/Cargo.toml
/tonic/tonic-types/README.md
/tonic/tonic-types/src/lib.rs
/tonic/tonic-web/Cargo.toml
/tonic/tonic-web/README.md
/tonic/tonic-web/src/client.rs
/tonic/tonic-web/src/lib.rs
/tonic/tonic/Cargo.toml
/tonic/tonic/benches/decode.rs
/tonic/tonic/src/client/grpc.rs
/tonic/tonic/src/codec/compression.rs
/tonic/tonic/src/lib.rs
/tonic/tonic/src/response.rs
/tonic/tonic/src/server/grpc.rs
/tonic/tonic/src/transport/channel/endpoint.rs
/tonic/tonic/src/transport/channel/service/discover.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/server/service/io.rs
/tonic/tonic/src/transport/server/service/mod.rs
/tonic/tonic/src/transport/server/service/tls.rs
/tonic/tonic/src/transport/server/tls.rs
9691256801-Jan-2025 tottoto <[email protected]>

chore: Remove version and publish field from internal crate (#2113)

220e958501-Jan-2025 tottoto <[email protected]>

chore(interop): Flatten nested conditional structure (#2112)


/tonic/.github/workflows/CI.yml
/tonic/README.md
/tonic/deny.toml
/tonic/examples/Cargo.toml
/tonic/examples/routeguide-tutorial.md
/tonic/examples/src/routeguide/client.rs
/tonic/examples/src/streaming/server.rs
src/server.rs
/tonic/tests/integration_tests/tests/client_layer.rs
/tonic/tests/integration_tests/tests/complex_tower_middleware.rs
/tonic/tests/integration_tests/tests/connect_info.rs
/tonic/tests/integration_tests/tests/connection.rs
/tonic/tests/integration_tests/tests/extensions.rs
/tonic/tests/integration_tests/tests/http2_keep_alive.rs
/tonic/tests/integration_tests/tests/http2_max_header_list_size.rs
/tonic/tests/integration_tests/tests/interceptor.rs
/tonic/tests/integration_tests/tests/origin.rs
/tonic/tests/integration_tests/tests/routes_builder.rs
/tonic/tests/integration_tests/tests/status.rs
/tonic/tests/integration_tests/tests/streams.rs
/tonic/tests/integration_tests/tests/user_agent.rs
/tonic/tests/root-crate-path/src/main.rs
/tonic/tonic-health/Cargo.toml
/tonic/tonic-health/src/server.rs
/tonic/tonic-reflection/Cargo.toml
/tonic/tonic-reflection/src/server/v1.rs
/tonic/tonic-reflection/src/server/v1alpha.rs
/tonic/tonic-web/src/call.rs
/tonic/tonic-web/src/client.rs
/tonic/tonic-web/src/service.rs
/tonic/tonic/Cargo.toml
/tonic/tonic/src/client/grpc.rs
/tonic/tonic/src/codec/compression.rs
/tonic/tonic/src/codec/decode.rs
/tonic/tonic/src/server/grpc.rs
/tonic/tonic/src/service/interceptor.rs
/tonic/tonic/src/service/router.rs
/tonic/tonic/src/status.rs
/tonic/tonic/src/transport/channel/service/tls.rs
/tonic/tonic/src/transport/server/incoming.rs
/tonic/tonic/src/transport/server/io_stream.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/server/service/recover_error.rs
f4a879db23-Nov-2024 tottoto <[email protected]>

chore!: Remove deprecated api (#2050)

60b131d215-Nov-2024 tottoto <[email protected]>

feat: Add Body type (#2013)

7220ecb413-Nov-2024 Lucio Franco <[email protected]>

interop: fix tls certs and tf script (#2048)


/tonic/.github/workflows/CI.yml
/tonic/codegen/src/main.rs
/tonic/deny.toml
/tonic/examples/Cargo.toml
/tonic/examples/helloworld-tutorial.md
/tonic/examples/routeguide-tutorial.md
/tonic/examples/src/dynamic_load_balance/client.rs
/tonic/examples/src/tls_rustls/client.rs
/tonic/examples/src/tls_rustls/server.rs
/tonic/examples/src/tower/client.rs
/tonic/examples/src/tower/server.rs
data/ca.pem
data/cert-generator/ca.tf
data/cert-generator/server_certs.tf
data/server1.key
data/server1.pem
/tonic/tests/integration_tests/Cargo.toml
/tonic/tests/integration_tests/tests/connection.rs
/tonic/tonic-build/Cargo.toml
/tonic/tonic-build/src/lib.rs
/tonic/tonic-health/Cargo.toml
/tonic/tonic-health/src/lib.rs
/tonic/tonic-reflection/Cargo.toml
/tonic/tonic-reflection/src/lib.rs
/tonic/tonic-types/Cargo.toml
/tonic/tonic-types/src/lib.rs
/tonic/tonic-web/Cargo.toml
/tonic/tonic-web/src/lib.rs
/tonic/tonic-web/src/service.rs
/tonic/tonic/Cargo.toml
/tonic/tonic/src/body.rs
/tonic/tonic/src/client/grpc.rs
/tonic/tonic/src/client/service.rs
/tonic/tonic/src/codec/decode.rs
/tonic/tonic/src/lib.rs
/tonic/tonic/src/request.rs
/tonic/tonic/src/server/grpc.rs
/tonic/tonic/src/service/router.rs
/tonic/tonic/src/status.rs
/tonic/tonic/src/transport/channel/endpoint.rs
/tonic/tonic/src/transport/channel/mod.rs
/tonic/tonic/src/transport/channel/service/add_origin.rs
/tonic/tonic/src/transport/channel/service/connection.rs
/tonic/tonic/src/transport/channel/service/connector.rs
/tonic/tonic/src/transport/channel/service/discover.rs
/tonic/tonic/src/transport/channel/service/mod.rs
/tonic/tonic/src/transport/channel/service/reconnect.rs
/tonic/tonic/src/transport/channel/service/tls.rs
/tonic/tonic/src/transport/channel/tls.rs
/tonic/tonic/src/transport/error.rs
/tonic/tonic/src/transport/mod.rs
/tonic/tonic/src/transport/server/conn.rs
/tonic/tonic/src/transport/server/incoming.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/server/service/io.rs
/tonic/tonic/src/transport/server/service/mod.rs
/tonic/tonic/src/transport/server/service/recover_error.rs
/tonic/tonic/src/transport/server/service/tls.rs
/tonic/tonic/src/transport/server/tls.rs
/tonic/tonic/src/transport/service/grpc_timeout.rs
/tonic/tonic/src/transport/service/mod.rs
/tonic/tonic/src/transport/service/tls.rs
58345a6b17-Oct-2024 tottoto <[email protected]>

chore: Update to tower 0.5 (#1892)


/tonic/.github/workflows/CI.yml
/tonic/CHANGELOG.md
/tonic/CONTRIBUTING.md
/tonic/Cargo.toml
/tonic/README.md
/tonic/codegen/Cargo.toml
/tonic/codegen/src/main.rs
/tonic/examples/Cargo.toml
/tonic/examples/build.rs
/tonic/examples/routeguide-tutorial.md
/tonic/examples/src/grpc-web/server.rs
/tonic/examples/src/h2c/client.rs
/tonic/examples/src/h2c/server.rs
/tonic/examples/src/tower/client.rs
/tonic/examples/src/tower/server.rs
Cargo.toml
/tonic/tests/compression/Cargo.toml
/tonic/tests/default_stubs/build.rs
/tonic/tests/disable_comments/build.rs
/tonic/tests/extern_path/my_application/build.rs
/tonic/tests/integration_tests/Cargo.toml
/tonic/tests/root-crate-path/build.rs
/tonic/tests/skip_debug/Cargo.toml
/tonic/tests/skip_debug/build.rs
/tonic/tests/skip_debug/proto/test.proto
/tonic/tests/skip_debug/src/lib.rs
/tonic/tests/skip_debug/tests/skip_debug.rs
/tonic/tests/use_arc_self/build.rs
/tonic/tests/web/Cargo.toml
/tonic/tests/web/LICENSE
/tonic/tests/web/build.rs
/tonic/tests/web/proto/test.proto
/tonic/tests/web/src/lib.rs
/tonic/tests/web/tests/grpc.rs
/tonic/tests/web/tests/grpc_web.rs
/tonic/tests/wellknown-compiled/build.rs
/tonic/tonic-build/Cargo.toml
/tonic/tonic-build/README.md
/tonic/tonic-build/src/client.rs
/tonic/tonic-build/src/lib.rs
/tonic/tonic-build/src/prost.rs
/tonic/tonic-build/src/server.rs
/tonic/tonic-health/Cargo.toml
/tonic/tonic-health/src/generated/grpc_health_v1.rs
/tonic/tonic-health/src/generated/grpc_health_v1_fds.rs
/tonic/tonic-health/src/lib.rs
/tonic/tonic-reflection/Cargo.toml
/tonic/tonic-reflection/src/generated/grpc_reflection_v1.rs
/tonic/tonic-reflection/src/generated/grpc_reflection_v1alpha.rs
/tonic/tonic-reflection/src/generated/reflection_v1_fds.rs
/tonic/tonic-reflection/src/generated/reflection_v1alpha1_fds.rs
/tonic/tonic-reflection/src/lib.rs
/tonic/tonic-types/Cargo.toml
/tonic/tonic-types/src/generated/google_rpc.rs
/tonic/tonic-types/src/generated/types_fds.rs
/tonic/tonic-types/src/lib.rs
/tonic/tonic-web/Cargo.toml
/tonic/tonic-web/src/call.rs
/tonic/tonic-web/src/client.rs
/tonic/tonic-web/src/layer.rs
/tonic/tonic-web/src/lib.rs
/tonic/tonic-web/src/service.rs
/tonic/tonic/Cargo.toml
/tonic/tonic/src/body.rs
/tonic/tonic/src/client/grpc.rs
/tonic/tonic/src/codec/compression.rs
/tonic/tonic/src/codec/decode.rs
/tonic/tonic/src/codec/encode.rs
/tonic/tonic/src/codec/mod.rs
/tonic/tonic/src/codec/prost.rs
/tonic/tonic/src/codegen.rs
/tonic/tonic/src/lib.rs
/tonic/tonic/src/macros.rs
/tonic/tonic/src/metadata/key.rs
/tonic/tonic/src/metadata/map.rs
/tonic/tonic/src/metadata/value.rs
/tonic/tonic/src/request.rs
/tonic/tonic/src/response.rs
/tonic/tonic/src/server/grpc.rs
/tonic/tonic/src/service/interceptor.rs
/tonic/tonic/src/service/layered.rs
/tonic/tonic/src/service/mod.rs
/tonic/tonic/src/service/router.rs
/tonic/tonic/src/status.rs
/tonic/tonic/src/transport/channel/endpoint.rs
/tonic/tonic/src/transport/channel/mod.rs
/tonic/tonic/src/transport/channel/service/tls.rs
/tonic/tonic/src/transport/channel/tls.rs
/tonic/tonic/src/transport/server/incoming.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/server/service/io.rs
/tonic/tonic/src/transport/service/grpc_timeout.rs
/tonic/tonic/src/transport/service/tls.rs
7173808a28-Aug-2024 tottoto <[email protected]>

Revert "fix tonic-build cargo build script outputs (#1821)" (#1898)

This reverts commit dfd3bb4aa29fdb60b1bec21a51c8e8d4a8b24daf.

3d804e9926-Aug-2024 tottoto <[email protected]>

chore(interop): Refactor path to Result (#1891)

* chore(interop): Use ordinary path to Result

* chore(interop): Add StdResult alias to std::result::Result


/tonic/.github/workflows/CI.yml
/tonic/CHANGELOG.md
/tonic/CONTRIBUTING.md
/tonic/Cargo.toml
/tonic/deny.toml
/tonic/examples/Cargo.toml
/tonic/examples/src/h2c/server.rs
/tonic/examples/src/reflection/server.rs
/tonic/examples/src/tls_rustls/server.rs
src/server.rs
/tonic/tests/deprecated_methods/Cargo.toml
/tonic/tests/deprecated_methods/build.rs
/tonic/tests/deprecated_methods/proto/test.proto
/tonic/tests/deprecated_methods/src/lib.rs
/tonic/tests/deprecated_methods/tests/deprecated_methods.rs
/tonic/tests/integration_tests/Cargo.toml
/tonic/tests/integration_tests/tests/connection.rs
/tonic/tests/integration_tests/tests/extensions.rs
/tonic/tests/integration_tests/tests/http2_max_header_list_size.rs
/tonic/tonic-build/Cargo.toml
/tonic/tonic-build/src/client.rs
/tonic/tonic-build/src/lib.rs
/tonic/tonic-build/src/manual.rs
/tonic/tonic-build/src/prost.rs
/tonic/tonic-build/src/server.rs
/tonic/tonic-health/Cargo.toml
/tonic/tonic-health/src/generated/grpc_health_v1.rs
/tonic/tonic-health/src/lib.rs
/tonic/tonic-reflection/Cargo.toml
/tonic/tonic-reflection/src/generated/grpc_reflection_v1.rs
/tonic/tonic-reflection/src/generated/grpc_reflection_v1alpha.rs
/tonic/tonic-reflection/src/lib.rs
/tonic/tonic-reflection/src/server/mod.rs
/tonic/tonic-reflection/src/server/v1.rs
/tonic/tonic-reflection/src/server/v1alpha.rs
/tonic/tonic-reflection/tests/server.rs
/tonic/tonic-reflection/tests/versions.rs
/tonic/tonic-types/Cargo.toml
/tonic/tonic-types/src/lib.rs
/tonic/tonic-types/src/richer_error/std_messages/retry_info.rs
/tonic/tonic-web/Cargo.toml
/tonic/tonic-web/src/call.rs
/tonic/tonic-web/src/lib.rs
/tonic/tonic/Cargo.toml
/tonic/tonic/src/codec/compression.rs
/tonic/tonic/src/codec/decode.rs
/tonic/tonic/src/codec/mod.rs
/tonic/tonic/src/codec/prost.rs
/tonic/tonic/src/lib.rs
/tonic/tonic/src/metadata/value.rs
/tonic/tonic/src/service/router.rs
/tonic/tonic/src/status.rs
/tonic/tonic/src/transport/channel/endpoint.rs
/tonic/tonic/src/transport/channel/service/connection.rs
/tonic/tonic/src/transport/channel/service/connector.rs
/tonic/tonic/src/transport/channel/service/mod.rs
/tonic/tonic/src/transport/channel/service/tls.rs
/tonic/tonic/src/transport/channel/tls.rs
/tonic/tonic/src/transport/mod.rs
/tonic/tonic/src/transport/server/incoming.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/service/grpc_timeout.rs
dfd3bb4a25-Jul-2024 Huddy Buddy <[email protected]>

fix tonic-build cargo build script outputs (#1821)

3df62feb08-Jul-2024 Lucio Franco <[email protected]>

feat: update `prost` to `v0.13.0` (#1779)

BREAKING CHANGE: update prost version to v0.13.0

9f5fc3b908-Jul-2024 tottoto <[email protected]>

chore: Replace unit struct with ordinary struct (#1777)


/tonic/.github/workflows/CI.yml
/tonic/deny.toml
/tonic/examples/Cargo.toml
/tonic/examples/src/authentication/server.rs
/tonic/examples/src/h2c/server.rs
/tonic/examples/src/multiplex/server.rs
/tonic/examples/src/richer-error/server.rs
/tonic/examples/src/richer-error/server_vec.rs
/tonic/examples/src/streaming/server.rs
/tonic/examples/src/tls/server.rs
/tonic/examples/src/tls_client_auth/server.rs
/tonic/examples/src/tls_rustls/client.rs
/tonic/examples/src/tls_rustls/server.rs
/tonic/examples/src/tower/server.rs
src/server.rs
/tonic/tests/integration_tests/tests/http2_keep_alive.rs
/tonic/tests/integration_tests/tests/status.rs
/tonic/tonic-build/src/lib.rs
/tonic/tonic-build/src/prost.rs
/tonic/tonic-build/src/server.rs
/tonic/tonic-health/src/generated/grpc_health_v1.rs
/tonic/tonic-health/src/lib.rs
/tonic/tonic-health/src/server.rs
/tonic/tonic-reflection/src/generated/grpc_reflection_v1.rs
/tonic/tonic-reflection/src/generated/grpc_reflection_v1alpha.rs
/tonic/tonic-reflection/src/lib.rs
/tonic/tonic-reflection/src/server.rs
/tonic/tonic-web/src/call.rs
/tonic/tonic-web/src/client.rs
/tonic/tonic-web/src/layer.rs
/tonic/tonic-web/src/service.rs
/tonic/tonic/Cargo.toml
/tonic/tonic/src/body.rs
/tonic/tonic/src/client/grpc.rs
/tonic/tonic/src/codec/compression.rs
/tonic/tonic/src/codec/decode.rs
/tonic/tonic/src/codec/encode.rs
/tonic/tonic/src/codec/mod.rs
/tonic/tonic/src/extensions.rs
/tonic/tonic/src/lib.rs
/tonic/tonic/src/metadata/key.rs
/tonic/tonic/src/metadata/mod.rs
/tonic/tonic/src/metadata/value.rs
/tonic/tonic/src/request.rs
/tonic/tonic/src/response.rs
/tonic/tonic/src/server/grpc.rs
/tonic/tonic/src/service/interceptor.rs
/tonic/tonic/src/service/mod.rs
/tonic/tonic/src/service/router.rs
/tonic/tonic/src/status.rs
/tonic/tonic/src/transport/channel/endpoint.rs
/tonic/tonic/src/transport/channel/mod.rs
/tonic/tonic/src/transport/channel/service/add_origin.rs
/tonic/tonic/src/transport/channel/service/connection.rs
/tonic/tonic/src/transport/channel/service/connector.rs
/tonic/tonic/src/transport/channel/service/discover.rs
/tonic/tonic/src/transport/channel/service/executor.rs
/tonic/tonic/src/transport/channel/service/io.rs
/tonic/tonic/src/transport/channel/service/mod.rs
/tonic/tonic/src/transport/channel/service/reconnect.rs
/tonic/tonic/src/transport/channel/service/tls.rs
/tonic/tonic/src/transport/channel/service/user_agent.rs
/tonic/tonic/src/transport/channel/tls.rs
/tonic/tonic/src/transport/error.rs
/tonic/tonic/src/transport/mod.rs
/tonic/tonic/src/transport/server/conn.rs
/tonic/tonic/src/transport/server/incoming.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/server/service/io.rs
/tonic/tonic/src/transport/server/service/mod.rs
/tonic/tonic/src/transport/server/service/recover_error.rs
/tonic/tonic/src/transport/server/service/tls.rs
/tonic/tonic/src/transport/server/tls.rs
/tonic/tonic/src/transport/server/unix.rs
/tonic/tonic/src/transport/service/mod.rs
/tonic/tonic/src/transport/service/tls.rs
9c1f2f9412-Jun-2024 Alex Rudy <[email protected]>

Upgrade to Hyper 1.0 & Axum 0.7 (#1670)

* Upgrade to hyper 1 and http 1

Upgrades only in Cargo.toml

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <allanzhan

Upgrade to Hyper 1.0 & Axum 0.7 (#1670)

* Upgrade to hyper 1 and http 1

Upgrades only in Cargo.toml

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* Convert from hyper::Body to http_body::BoxedBody

When appropriate, we replace `hyper::Body` with `http_body::BoxedBody`, a good general purpose replacement for `hyper::Body`.

Hyper does provide `hyper::body::Incoming`, but we cannot construct that, so anywhere we might need a body that we can construct (even most Service trait impls) we must use something like `http_body::BoxedBody`.

When a service accepts `BoxedBody` and not `Incoming`, this indicates that the service is designed to run in places where it is not adjacent to hyper, for example, after routing (which is managed by Axum)

Additionally, http >= 1 requires that extension types are `Clone`, so this bound has been added where appropriate.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* Convert tonic::codec::decode to use http >= 1 body types

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods.

Co-authored-by: Ivan Krivosheev <[email protected]>

* Convert tonic::transport::channel to use http >= 1 body types

tonic::transport::channel previously used `hyper::Body` as the response body type. This type no longer exists in hyper >= 1, and so has been converted to a `BoxBody` provided by `http_body_util` designed for interoperability between http crates.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* [tests] Convert tonic::codec::prost::tests to use http >= 1 body types

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods. This also handles the return types which should now be wrapped in `Frame` when appropriate.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* Convert tonic::codec::encode to use http >= 1 body types

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* [tests] Convert tonic::service::interceptor::tests to use http >= 1 body types

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods. This also handles the return types which should now be wrapped in `Frame` when appropriate.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* Convert tonic::transport to use http >= 1 body types

Here, we must update some body types which are no longer valid. (A) BoxBody no longer has an `empty` method, instead we provide a helper in `tonic::body` for creating an empty boxed body via `http_body_util`. As well, `hyper::Body` is no longer a type, and instead, `hyper::Incoming` is used when directly recieving a Request from hyper, and `BoxBody` is used when the request may have passed through an axum router. In tonic, we prefer `BoxBody` as it allows for services to be used downstream from other components which enforce a specific body type (e.g. Axum), at the cost of making Body streaming opaque.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* Convert tonic::transport::server::recover_error to use http >= 1 body types

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Ludea <[email protected]>

* Convert h2c examples to use http >= 1 body types

In h2c, when a service is receiving from hyper, it has to accept a `hyper::body::Incoming` in hyper >= 1.

Additionally, response bodies must be built from `http_body_util` combinators and become BoxBody objects.

* [tests] Convert MergeTrailers body wrapper in interop server

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods.

* [tests] Convert compression tests to use hyper 1 body types

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods.

* [tests] Convert complex_tower_middleware Body for hyper 1

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods.

* [tests] Convert integration_tests::origin to use http >= 1 body types

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods.

* Convert tonic-web to use http >= 1 body types

The Body trait has changed (removed `poll_data` and `poll_trailers`, they are now combined in `poll_frame`) and so the codec must be re-written to merge those two methods.

* Adapt for hyper-specific IO traits

hyper >= 1 provides its own I/O traits (Read & Write) instead of relying on the equivalent traits from `tokio`. Then, `hyper-util` provides adaptor structs to wrap `tokio` I/O objects and implement the hyper equivalents. Therefore, we update the appropriate bounds to use the hyper traits, and update the I/O objects so that they are wrapped in the tokio to hyper adaptor.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* Upgrade axum to 0.7

Axum must be >= 0.7 to support hyper >= 1

Doing this also involves changing the Body type used. Since hyper >= 1 does not provide a generic body type, Axum and tonic both use `BoxBody` to provide a pointer to a Body.

This changes the trait bounds required for methods which accept additional Serivces to be run alongside the primary GRPC service, since those will be routed with Axum, and therefore must accept a BoxBody.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* Convert service connector for hyper-1.0

Hyper >= 1 no longer includes automatic http2/http1 combined connections, and so we must swtich to the `http2::Builder` type (this is okay, we set http2_only(true) anyhow).

As well, hyper >= 1 is generic over executors and does not directly depend on tokio. Since http2 connections can be multiplexed, they require some additional background task to handle sending and receiving requests. Additionally, these background tasks do not natively implement `tower::Service` since hyper >= 1 does not depend on `tower`.

Therefore, we re-implement the `SendRequest` task as a tower::Service, so that it can be used within `Connection`, which expects to operate on a tower::Service to serve connections.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* Convert hyper::Client to hyper_util::legacy::Client

`hyper::Client` has been moved to `hyper_util::legacy::Client` in version 1.

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

* Identify and propogate connect errors

hyper::Error no longer provides information about Connect errors, especially since hyper_util now contains the connection implementation, it does not provide a separate error type.

Instead, we create an internal Error type which is used in our own connectors, and then checked when figuring out what the gRPC status should be.

* Remove hyper::server::conn::AddrStream

hyper >= 1 has deprecated all of `hyper::server`, including `AddrStream`

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>

Replace hyper::server::Accept

hyper::server is deprectaed. Instead, we implement our own TCP-incoming based on the now removed hyper::server::Accept.

In order to set `TCP_KEEPALIVE` we require the socket2 crate, since this option is not exposed in the standard library’s API. The implementaiton is inspired by that of hyper v0.14

* [examples] In h2c, replace hyper::Server with an accept loop

hyper::Server is deprecated, with no current common replacement. Instead of implementing (or using tonic’s new) full server in here, we write a simple accept loop, which is sufficient to demonstrate the functionality of h2c.

* Upgrade tls dependencies

hyper-rustls requires version 0.27.0 to support hyper >= 1, bringing a few other tls bumps along. Importantly, we add the “ring” and “tls12” features to use ring as the crypto backend, consistent with previous versions of tonic. A future version of tonic might support selecting backends via features.

Co-authored-by: Ivan Krivosheev <[email protected]>

* Combine trailers when streaming decode body

We aren't sure if multiple trailers should even be legal, but if we get multiple trailers in an HTTP body stream, we'll combine them all, to preserve their data.

Alternatively we'd have to pick the first or last trailers, and that might lose information.

* Tweak imports in transport example

Example used `empty_body()`, which is now fully qualified as `tonic::body::empty_body()` to make clear that this is a tonic helper method for creating an empty BoxBody.

* Remove commented out code from examples/h2c

* tonic-web: avoid copy to vector to base64 encode

* tonic-web: Merge subsequent trailer frames

Ideally, a body should only return a single trailer frame. If multiple trailers are returned, merge them together.

* Comment in tonic::status::find_status_in_source_chain

Comment mentions why we choose “Unavailable” for connection errors

* Make TowerToHyperService crate-private

This also requires vendoring it in the rustls example, which doesn’t use a server type.

Making the type crate-private means we can delete some unused methods.

* Fixup imports in tonic::transport

---------

Co-authored-by: Ivan Krivosheev <[email protected]>
Co-authored-by: Allan Zhang <[email protected]>
Co-authored-by: Ludea <[email protected]>

show more ...


/tonic/.github/workflows/CI.yml
/tonic/codegen/src/main.rs
/tonic/deny.toml
/tonic/examples/Cargo.toml
/tonic/examples/helloworld-tutorial.md
/tonic/examples/routeguide-tutorial.md
/tonic/examples/src/grpc-web/client.rs
/tonic/examples/src/h2c/client.rs
/tonic/examples/src/h2c/server.rs
/tonic/examples/src/interceptor/server.rs
/tonic/examples/src/mock/mock.rs
/tonic/examples/src/streaming/client.rs
/tonic/examples/src/streaming/server.rs
/tonic/examples/src/tls_rustls/client.rs
/tonic/examples/src/tls_rustls/server.rs
/tonic/examples/src/tower/client.rs
/tonic/examples/src/tower/server.rs
/tonic/examples/src/uds/client.rs
Cargo.toml
src/server.rs
/tonic/tests/compression/Cargo.toml
/tonic/tests/compression/src/util.rs
/tonic/tests/integration_tests/Cargo.toml
/tonic/tests/integration_tests/tests/complex_tower_middleware.rs
/tonic/tests/integration_tests/tests/connect_info.rs
/tonic/tests/integration_tests/tests/extensions.rs
/tonic/tests/integration_tests/tests/max_message_size.rs
/tonic/tests/integration_tests/tests/origin.rs
/tonic/tests/integration_tests/tests/status.rs
/tonic/tests/root-crate-path/Cargo.toml
/tonic/tonic-build/README.md
/tonic/tonic-reflection/proto/reflection_v1.proto
/tonic/tonic-reflection/proto/reflection_v1alpha.proto
/tonic/tonic-reflection/src/generated/grpc_reflection_v1.rs
/tonic/tonic-reflection/src/generated/reflection_v1.bin
/tonic/tonic-reflection/src/generated/reflection_v1alpha1.bin
/tonic/tonic-reflection/src/lib.rs
/tonic/tonic-reflection/src/server.rs
/tonic/tonic-reflection/tests/server.rs
/tonic/tonic-types/src/generated/types.bin
/tonic/tonic-web/Cargo.toml
/tonic/tonic-web/src/call.rs
/tonic/tonic-web/src/layer.rs
/tonic/tonic-web/src/lib.rs
/tonic/tonic-web/src/service.rs
/tonic/tonic-web/tests/integration/Cargo.toml
/tonic/tonic-web/tests/integration/tests/grpc_web.rs
/tonic/tonic/Cargo.toml
/tonic/tonic/benches/decode.rs
/tonic/tonic/src/body.rs
/tonic/tonic/src/client/grpc.rs
/tonic/tonic/src/codec/buffer.rs
/tonic/tonic/src/codec/decode.rs
/tonic/tonic/src/codec/encode.rs
/tonic/tonic/src/codec/prost.rs
/tonic/tonic/src/extensions.rs
/tonic/tonic/src/request.rs
/tonic/tonic/src/server/grpc.rs
/tonic/tonic/src/service/interceptor.rs
/tonic/tonic/src/status.rs
/tonic/tonic/src/transport/channel/endpoint.rs
/tonic/tonic/src/transport/channel/mod.rs
/tonic/tonic/src/transport/mod.rs
/tonic/tonic/src/transport/server/conn.rs
/tonic/tonic/src/transport/server/incoming.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/server/recover_error.rs
/tonic/tonic/src/transport/service/connection.rs
/tonic/tonic/src/transport/service/connector.rs
/tonic/tonic/src/transport/service/discover.rs
/tonic/tonic/src/transport/service/executor.rs
/tonic/tonic/src/transport/service/io.rs
/tonic/tonic/src/transport/service/mod.rs
/tonic/tonic/src/transport/service/router.rs
/tonic/tonic/src/transport/service/tls.rs
fcf7a65921-May-2024 tottoto <[email protected]>

chore(interop): Update to strum 0.26 (#1657)

8a53392129-Feb-2024 tottoto <[email protected]>

chore: Apply small refactoring (#1642)

* chore(interop): Replace map clone with cloned

* chore(examples): Remove importing prelude trait


/tonic/.github/workflows/CI.yml
/tonic/CHANGELOG.md
/tonic/Cargo.toml
/tonic/README.md
/tonic/deny.toml
/tonic/examples/Cargo.toml
/tonic/examples/build.rs
/tonic/examples/helloworld-tutorial.md
/tonic/examples/routeguide-tutorial.md
/tonic/examples/src/codec_buffers/client.rs
/tonic/examples/src/codec_buffers/common.rs
/tonic/examples/src/codec_buffers/server.rs
/tonic/examples/src/tls_rustls/client.rs
src/server.rs
/tonic/tests/compression/Cargo.toml
/tonic/tests/compression/src/bidirectional_stream.rs
/tonic/tests/compression/src/client_stream.rs
/tonic/tests/compression/src/compressing_request.rs
/tonic/tests/compression/src/compressing_response.rs
/tonic/tests/compression/src/server_stream.rs
/tonic/tests/compression/src/util.rs
/tonic/tonic-build/Cargo.toml
/tonic/tonic-build/README.md
/tonic/tonic-build/src/compile_settings.rs
/tonic/tonic-build/src/lib.rs
/tonic/tonic-build/src/prost.rs
/tonic/tonic-health/Cargo.toml
/tonic/tonic-health/src/lib.rs
/tonic/tonic-reflection/Cargo.toml
/tonic/tonic-reflection/src/lib.rs
/tonic/tonic-types/Cargo.toml
/tonic/tonic-types/src/lib.rs
/tonic/tonic-types/src/richer_error/mod.rs
/tonic/tonic-web/Cargo.toml
/tonic/tonic-web/src/call.rs
/tonic/tonic-web/src/lib.rs
/tonic/tonic/Cargo.toml
/tonic/tonic/src/client/grpc.rs
/tonic/tonic/src/codec/compression.rs
/tonic/tonic/src/codec/decode.rs
/tonic/tonic/src/codec/encode.rs
/tonic/tonic/src/codec/mod.rs
/tonic/tonic/src/codec/prost.rs
/tonic/tonic/src/lib.rs
/tonic/tonic/src/request.rs
/tonic/tonic/src/server/grpc.rs
/tonic/tonic/src/transport/channel/endpoint.rs
/tonic/tonic/src/transport/channel/tls.rs
/tonic/tonic/src/transport/mod.rs
/tonic/tonic/src/transport/server/incoming.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/service/connector.rs
/tonic/tonic/src/transport/service/tls.rs
/tonic/tonic/src/transport/tls.rs
15663f1815-Nov-2023 tottoto <[email protected]>

chore(transport): Deprecate re-exported NamedService (#1521)

f089e7a013-Nov-2023 tottoto <[email protected]>

chore: Refactor use of tokio-stream (#1560)

d59fe0da01-Sep-2023 Lucio Franco <[email protected]>

chore: Prepare `0.10` release (#1492)


/tonic/.github/workflows/CI.yml
/tonic/CHANGELOG.md
/tonic/CONTRIBUTING.md
/tonic/Cargo.toml
/tonic/README.md
/tonic/codegen/Cargo.toml
/tonic/codegen/src/main.rs
/tonic/deny.toml
/tonic/examples/Cargo.toml
/tonic/examples/helloworld-tutorial.md
/tonic/examples/routeguide-tutorial.md
/tonic/examples/src/cancellation/client.rs
/tonic/examples/src/cancellation/server.rs
/tonic/examples/src/dynamic/server.rs
/tonic/examples/src/grpc-web/client.rs
/tonic/examples/src/h2c/client.rs
/tonic/examples/src/h2c/server.rs
/tonic/examples/src/tls/client.rs
/tonic/examples/src/tls_client_auth/client.rs
Cargo.toml
/tonic/tests/ambiguous_methods/Cargo.toml
/tonic/tests/compression/Cargo.toml
/tonic/tests/compression/src/util.rs
/tonic/tests/default_stubs/Cargo.toml
/tonic/tests/default_stubs/build.rs
/tonic/tests/default_stubs/proto/test.proto
/tonic/tests/default_stubs/proto/test_default.proto
/tonic/tests/default_stubs/src/lib.rs
/tonic/tests/default_stubs/src/test_defaults.rs
/tonic/tests/disable_comments/Cargo.toml
/tonic/tests/extern_path/my_application/Cargo.toml
/tonic/tests/extern_path/uuid/Cargo.toml
/tonic/tests/included_service/Cargo.toml
/tonic/tests/integration_tests/Cargo.toml
/tonic/tests/integration_tests/src/lib.rs
/tonic/tests/integration_tests/tests/client_layer.rs
/tonic/tests/integration_tests/tests/connect_info.rs
/tonic/tests/integration_tests/tests/connection.rs
/tonic/tests/integration_tests/tests/extensions.rs
/tonic/tests/integration_tests/tests/interceptor.rs
/tonic/tests/integration_tests/tests/origin.rs
/tonic/tests/integration_tests/tests/routes_builder.rs
/tonic/tests/integration_tests/tests/status.rs
/tonic/tests/integration_tests/tests/streams.rs
/tonic/tests/integration_tests/tests/user_agent.rs
/tonic/tests/root-crate-path/Cargo.toml
/tonic/tests/same_name/Cargo.toml
/tonic/tests/service_named_result/Cargo.toml
/tonic/tests/service_named_service/Cargo.toml
/tonic/tests/stream_conflict/Cargo.toml
/tonic/tests/use_arc_self/Cargo.toml
/tonic/tests/wellknown-compiled/Cargo.toml
/tonic/tests/wellknown/Cargo.toml
/tonic/tonic-build/Cargo.toml
/tonic/tonic-build/src/client.rs
/tonic/tonic-build/src/code_gen.rs
/tonic/tonic-build/src/lib.rs
/tonic/tonic-build/src/prost.rs
/tonic/tonic-build/src/server.rs
/tonic/tonic-health/Cargo.toml
/tonic/tonic-health/src/generated/grpc_health_v1.rs
/tonic/tonic-health/src/lib.rs
/tonic/tonic-reflection/Cargo.toml
/tonic/tonic-reflection/src/generated/grpc_reflection_v1alpha.rs
/tonic/tonic-reflection/src/lib.rs
/tonic/tonic-reflection/tests/server.rs
/tonic/tonic-types/Cargo.toml
/tonic/tonic-types/src/generated/google_rpc.rs
/tonic/tonic-types/src/lib.rs
/tonic/tonic-types/src/richer_error/mod.rs
/tonic/tonic-types/src/richer_error/std_messages/bad_request.rs
/tonic/tonic-types/src/richer_error/std_messages/debug_info.rs
/tonic/tonic-types/src/richer_error/std_messages/error_info.rs
/tonic/tonic-types/src/richer_error/std_messages/help.rs
/tonic/tonic-types/src/richer_error/std_messages/loc_message.rs
/tonic/tonic-types/src/richer_error/std_messages/prec_failure.rs
/tonic/tonic-types/src/richer_error/std_messages/quota_failure.rs
/tonic/tonic-types/src/richer_error/std_messages/request_info.rs
/tonic/tonic-types/src/richer_error/std_messages/resource_info.rs
/tonic/tonic-types/src/richer_error/std_messages/retry_info.rs
/tonic/tonic-web/Cargo.toml
/tonic/tonic-web/src/call.rs
/tonic/tonic-web/src/client.rs
/tonic/tonic-web/src/lib.rs
/tonic/tonic-web/src/service.rs
/tonic/tonic-web/tests/integration/Cargo.toml
/tonic/tonic/Cargo.toml
/tonic/tonic/src/client/grpc.rs
/tonic/tonic/src/codec/decode.rs
/tonic/tonic/src/codec/encode.rs
/tonic/tonic/src/codec/prost.rs
/tonic/tonic/src/codegen.rs
/tonic/tonic/src/lib.rs
/tonic/tonic/src/metadata/value.rs
/tonic/tonic/src/server/grpc.rs
/tonic/tonic/src/service/interceptor.rs
/tonic/tonic/src/service/mod.rs
/tonic/tonic/src/transport/channel/endpoint.rs
/tonic/tonic/src/transport/channel/mod.rs
/tonic/tonic/src/transport/mod.rs
/tonic/tonic/src/transport/server/incoming.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/server/recover_error.rs
/tonic/tonic/src/transport/service/add_origin.rs
/tonic/tonic/src/transport/service/connection.rs
/tonic/tonic/src/transport/service/connector.rs
/tonic/tonic/src/transport/service/executor.rs
/tonic/tonic/src/transport/service/grpc_timeout.rs
/tonic/tonic/src/transport/service/mod.rs
/tonic/tonic/src/transport/service/router.rs
/tonic/tonic/src/transport/service/tls.rs
21a9b7b108-Aug-2023 Lucio Franco <[email protected]>

chore(interop): Fix tls tests

cef002b026-Jul-2023 tottoto <[email protected]>

chore(interop): Replace futures crates with tokio-stream (#1438)

1fea823925-Jul-2023 tottoto <[email protected]>

chore(interop): Update to strum 0.25 (#1422)

c9c4acbc22-Jun-2023 tottoto <[email protected]>

chore: Use cargo-udeps to check unused dependencies (#1364)

* chore: Use cargo-udeps to check unused dependencies

* Exclude uds example on windows

* Revert to use tokio_stream::Stream instead of f

chore: Use cargo-udeps to check unused dependencies (#1364)

* chore: Use cargo-udeps to check unused dependencies

* Exclude uds example on windows

* Revert to use tokio_stream::Stream instead of futures_core::Stream

* Replace all futures_core:Stream with tokio_stream::Stream

* chore(web): Replace futures_core::Stream with tokio_stream::Stream

* chore(web): Use std version ready instead of futures-core version

* chore(tonic): Use futures-core via futures-util

* Revert "chore(web): Use std version ready instead of futures-core version"

This reverts commit 9d9458d9e632613f35f34c877bc162b3a03967b6.

* chore(examples): Refactor dependencies

* chore(tonic): Use tokio-stream::iter

* chore(reflection): Use tokio-stream::iter

---------

Co-authored-by: Lucio Franco <[email protected]>

show more ...


/tonic/.github/workflows/CI.yml
/tonic/examples/Cargo.toml
/tonic/examples/src/hyper_warp/server.rs
/tonic/examples/src/hyper_warp_multiplex/server.rs
/tonic/examples/src/mock/mock.rs
/tonic/examples/src/routeguide/client.rs
/tonic/examples/src/routeguide/server.rs
/tonic/examples/src/streaming/client.rs
/tonic/examples/src/streaming/server.rs
/tonic/examples/src/tower/server.rs
Cargo.toml
/tonic/tests/ambiguous_methods/Cargo.toml
/tonic/tests/compression/Cargo.toml
/tonic/tests/disable_comments/Cargo.toml
/tonic/tests/extern_path/my_application/Cargo.toml
/tonic/tests/extern_path/uuid/Cargo.toml
/tonic/tests/included_service/Cargo.toml
/tonic/tests/integration_tests/Cargo.toml
/tonic/tests/same_name/Cargo.toml
/tonic/tests/service_named_result/Cargo.toml
/tonic/tests/service_named_service/Cargo.toml
/tonic/tests/stream_conflict/Cargo.toml
/tonic/tests/wellknown-compiled/Cargo.toml
/tonic/tests/wellknown/Cargo.toml
/tonic/tonic-build/Cargo.toml
/tonic/tonic-build/src/server.rs
/tonic/tonic-health/Cargo.toml
/tonic/tonic-health/src/generated/grpc.health.v1.rs
/tonic/tonic-reflection/Cargo.toml
/tonic/tonic-reflection/src/generated/grpc.reflection.v1alpha.rs
/tonic/tonic-reflection/tests/server.rs
/tonic/tonic-web/Cargo.toml
/tonic/tonic-web/src/call.rs
/tonic/tonic-web/tests/integration/Cargo.toml
/tonic/tonic/Cargo.toml
/tonic/tonic/src/client/grpc.rs
/tonic/tonic/src/codec/decode.rs
/tonic/tonic/src/codec/encode.rs
/tonic/tonic/src/codec/prost.rs
/tonic/tonic/src/codegen.rs
/tonic/tonic/src/request.rs
/tonic/tonic/src/server/grpc.rs
/tonic/tonic/src/server/service.rs
/tonic/tonic/src/transport/channel/endpoint.rs
/tonic/tonic/src/transport/channel/mod.rs
/tonic/tonic/src/transport/server/incoming.rs
/tonic/tonic/src/transport/server/mod.rs
/tonic/tonic/src/transport/service/add_origin.rs
/tonic/tonic/src/transport/service/executor.rs
1934825f24-Apr-2023 Lucio Franco <[email protected]>

chore: Fix ci tests

123