gitextract_d8h12mxx/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ └── CI.yml ├── .gitignore ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Cargo.toml ├── LICENSE ├── README.md ├── SECURITY.md ├── codegen/ │ ├── Cargo.toml │ └── src/ │ └── main.rs ├── examples/ │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ ├── data/ │ │ ├── gcp/ │ │ │ └── roots.pem │ │ ├── route_guide_db.json │ │ └── tls/ │ │ ├── ca.key │ │ ├── ca.pem │ │ ├── client1.key │ │ ├── client1.pem │ │ ├── client2.key │ │ ├── client2.pem │ │ ├── client_ca.key │ │ ├── client_ca.pem │ │ ├── create.sh │ │ ├── openssl.cnf │ │ ├── server.key │ │ ├── server.pem │ │ ├── server2.key │ │ └── server2.pem │ ├── helloworld-tutorial.md │ ├── proto/ │ │ ├── attrs/ │ │ │ └── attrs.proto │ │ ├── echo/ │ │ │ └── echo.proto │ │ ├── googleapis/ │ │ │ └── google/ │ │ │ ├── api/ │ │ │ │ ├── annotations.proto │ │ │ │ ├── client.proto │ │ │ │ ├── field_behavior.proto │ │ │ │ ├── http.proto │ │ │ │ └── resource.proto │ │ │ └── pubsub/ │ │ │ └── v1/ │ │ │ ├── pubsub.proto │ │ │ └── schema.proto │ │ ├── helloworld/ │ │ │ └── helloworld.proto │ │ ├── routeguide/ │ │ │ └── route_guide.proto │ │ └── unaryecho/ │ │ └── echo.proto │ ├── routeguide-tutorial.md │ └── src/ │ ├── authentication/ │ │ ├── client.rs │ │ └── server.rs │ ├── autoreload/ │ │ └── server.rs │ ├── blocking/ │ │ ├── client.rs │ │ └── server.rs │ ├── cancellation/ │ │ ├── client.rs │ │ └── server.rs │ ├── codec_buffers/ │ │ ├── client.rs │ │ ├── common.rs │ │ └── server.rs │ ├── compression/ │ │ ├── client.rs │ │ └── server.rs │ ├── dynamic/ │ │ └── server.rs │ ├── dynamic_load_balance/ │ │ ├── client.rs │ │ └── server.rs │ ├── gcp/ │ │ ├── README.md │ │ └── client.rs │ ├── grpc-web/ │ │ ├── client.rs │ │ └── server.rs │ ├── h2c/ │ │ ├── client.rs │ │ └── server.rs │ ├── health/ │ │ ├── README.md │ │ └── server.rs │ ├── helloworld/ │ │ ├── client.rs │ │ └── server.rs │ ├── interceptor/ │ │ ├── client.rs │ │ └── server.rs │ ├── json-codec/ │ │ ├── client.rs │ │ ├── common.rs │ │ └── server.rs │ ├── load_balance/ │ │ ├── client.rs │ │ └── server.rs │ ├── mock/ │ │ └── mock.rs │ ├── multiplex/ │ │ ├── client.rs │ │ └── server.rs │ ├── reflection/ │ │ └── server.rs │ ├── richer-error/ │ │ ├── client.rs │ │ ├── client_vec.rs │ │ ├── server.rs │ │ └── server_vec.rs │ ├── routeguide/ │ │ ├── client.rs │ │ ├── data.rs │ │ └── server.rs │ ├── streaming/ │ │ ├── client.rs │ │ └── server.rs │ ├── tls/ │ │ ├── client.rs │ │ └── server.rs │ ├── tls_client_auth/ │ │ ├── client.rs │ │ └── server.rs │ ├── tls_rustls/ │ │ ├── client.rs │ │ └── server.rs │ ├── tower/ │ │ ├── client.rs │ │ └── server.rs │ ├── tracing/ │ │ ├── client.rs │ │ └── server.rs │ └── uds/ │ ├── client_standard.rs │ ├── client_with_connector.rs │ └── server.rs ├── flake.nix ├── grpc/ │ ├── Cargo.toml │ ├── examples/ │ │ └── inmemory.rs │ ├── proto/ │ │ └── echo/ │ │ └── echo.proto │ └── src/ │ ├── attributes/ │ │ ├── linked_list.rs │ │ └── mod.rs │ ├── byte_str.rs │ ├── client/ │ │ ├── channel.rs │ │ ├── interceptor.rs │ │ ├── load_balancing/ │ │ │ ├── child_manager.rs │ │ │ ├── graceful_switch.rs │ │ │ ├── mod.rs │ │ │ ├── pick_first.rs │ │ │ ├── registry.rs │ │ │ ├── round_robin.rs │ │ │ └── test_utils.rs │ │ ├── mod.rs │ │ ├── name_resolution/ │ │ │ ├── backoff.rs │ │ │ ├── dns/ │ │ │ │ ├── mod.rs │ │ │ │ └── test.rs │ │ │ ├── mod.rs │ │ │ └── registry.rs │ │ ├── service_config.rs │ │ ├── stream_util.rs │ │ ├── subchannel.rs │ │ └── transport/ │ │ ├── mod.rs │ │ ├── registry.rs │ │ └── tonic/ │ │ ├── mod.rs │ │ └── test.rs │ ├── core/ │ │ └── mod.rs │ ├── credentials/ │ │ ├── call.rs │ │ ├── client.rs │ │ ├── dyn_wrapper.rs │ │ ├── insecure.rs │ │ ├── local.rs │ │ ├── mod.rs │ │ ├── rustls/ │ │ │ ├── client/ │ │ │ │ ├── mod.rs │ │ │ │ └── test.rs │ │ │ ├── key_log.rs │ │ │ ├── mod.rs │ │ │ ├── server/ │ │ │ │ ├── mod.rs │ │ │ │ └── test.rs │ │ │ └── tls_stream.rs │ │ └── server.rs │ ├── generated/ │ │ ├── echo_fds.rs │ │ └── grpc_examples_echo.rs │ ├── inmemory/ │ │ └── mod.rs │ ├── lib.rs │ ├── macros.rs │ ├── rt/ │ │ ├── hyper_wrapper.rs │ │ ├── mod.rs │ │ └── tokio/ │ │ ├── hickory_resolver.rs │ │ └── mod.rs │ ├── send_future.rs │ ├── server/ │ │ └── mod.rs │ ├── status/ │ │ ├── server_status.rs │ │ └── status_code.rs │ └── status.rs ├── interop/ │ ├── Cargo.toml │ ├── bin/ │ │ ├── client_darwin_amd64 │ │ ├── client_linux_amd64 │ │ ├── server_darwin_amd64 │ │ └── server_linux_amd64 │ ├── build.rs │ ├── data/ │ │ ├── README.md │ │ ├── ca.pem │ │ ├── cert-generator/ │ │ │ ├── .gitignore │ │ │ ├── ca.tf │ │ │ └── server_certs.tf │ │ ├── server1.key │ │ └── server1.pem │ ├── proto/ │ │ └── grpc/ │ │ └── testing/ │ │ ├── empty.proto │ │ ├── messages.proto │ │ └── test.proto │ ├── src/ │ │ ├── bin/ │ │ │ ├── client.rs │ │ │ └── server.rs │ │ ├── client.rs │ │ ├── client_prost.rs │ │ ├── client_protobuf.rs │ │ ├── lib.rs │ │ ├── server_prost.rs │ │ └── server_protobuf.rs │ ├── test.sh │ └── update_binaries.sh ├── prepare-release.sh ├── protoc-gen-rust-grpc/ │ ├── .bazelrc │ ├── .gitignore │ ├── CMakeLists.txt │ ├── README.md │ ├── cmake/ │ │ └── FetchProtobuf.cmake │ └── src/ │ ├── BUILD │ ├── grpc_rust_generator.cc │ ├── grpc_rust_generator.h │ └── grpc_rust_plugin.cc ├── publish-release.sh ├── tests/ │ ├── compile/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── proto/ │ │ │ ├── ambiguous_methods.proto │ │ │ ├── includee.proto │ │ │ ├── includer.proto │ │ │ ├── result.proto │ │ │ ├── root_crate_path.proto │ │ │ ├── same_name.proto │ │ │ ├── service.proto │ │ │ ├── skip_debug.proto │ │ │ ├── stream.proto │ │ │ └── use_arc_self.proto │ │ ├── src/ │ │ │ └── lib.rs │ │ └── tests/ │ │ ├── ui/ │ │ │ ├── ambiguous_methods.rs │ │ │ ├── includer.rs │ │ │ ├── result.rs │ │ │ ├── root_file_path.rs │ │ │ ├── same_name.rs │ │ │ ├── service.rs │ │ │ ├── skip_debug.rs │ │ │ ├── stream.rs │ │ │ └── use_arc_self.rs │ │ └── ui.rs │ ├── compression/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── proto/ │ │ │ └── test.proto │ │ └── src/ │ │ ├── bidirectional_stream.rs │ │ ├── client_stream.rs │ │ ├── compressing_request.rs │ │ ├── compressing_response.rs │ │ ├── lib.rs │ │ ├── server_stream.rs │ │ └── util.rs │ ├── default_stubs/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── proto/ │ │ │ ├── test.proto │ │ │ └── test_default.proto │ │ ├── src/ │ │ │ └── lib.rs │ │ └── tests/ │ │ └── default.rs │ ├── deprecated_methods/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── proto/ │ │ │ └── test.proto │ │ ├── src/ │ │ │ └── lib.rs │ │ └── tests/ │ │ └── deprecated_methods.rs │ ├── disable_comments/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── proto/ │ │ │ └── test.proto │ │ ├── src/ │ │ │ └── lib.rs │ │ └── tests/ │ │ └── disable_comments.rs │ ├── extern_path/ │ │ ├── my_application/ │ │ │ ├── Cargo.toml │ │ │ ├── build.rs │ │ │ └── src/ │ │ │ └── main.rs │ │ ├── proto/ │ │ │ ├── my_application/ │ │ │ │ └── service.proto │ │ │ └── uuid/ │ │ │ └── uuid.proto │ │ └── uuid/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src/ │ │ └── lib.rs │ ├── integration_tests/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── proto/ │ │ │ ├── stream.proto │ │ │ └── test.proto │ │ ├── src/ │ │ │ └── lib.rs │ │ └── tests/ │ │ ├── client_layer.rs │ │ ├── complex_tower_middleware.rs │ │ ├── connect_info.rs │ │ ├── connection.rs │ │ ├── extensions.rs │ │ ├── http2_keep_alive.rs │ │ ├── http2_max_header_list_size.rs │ │ ├── interceptor.rs │ │ ├── load_shed.rs │ │ ├── max_message_size.rs │ │ ├── origin.rs │ │ ├── routes_builder.rs │ │ ├── status.rs │ │ ├── streams.rs │ │ ├── timeout.rs │ │ └── user_agent.rs │ ├── web/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── proto/ │ │ │ └── test.proto │ │ ├── src/ │ │ │ └── lib.rs │ │ └── tests/ │ │ ├── grpc.rs │ │ └── grpc_web.rs │ ├── wellknown/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── proto/ │ │ │ └── wellknown.proto │ │ └── src/ │ │ └── lib.rs │ └── wellknown-compiled/ │ ├── Cargo.toml │ ├── build.rs │ ├── proto/ │ │ ├── google.proto │ │ └── test.proto │ └── src/ │ └── lib.rs ├── tonic/ │ ├── Cargo.toml │ ├── benches/ │ │ └── decode.rs │ ├── benches-disabled/ │ │ ├── README.md │ │ ├── bench_main.rs │ │ ├── benchmarks/ │ │ │ ├── compiled_protos/ │ │ │ │ ├── diverse_types.rs │ │ │ │ ├── helloworld.rs │ │ │ │ └── mod.rs │ │ │ ├── mod.rs │ │ │ ├── request_response.rs │ │ │ ├── request_response_diverse_types.rs │ │ │ └── utils.rs │ │ └── proto/ │ │ ├── diverse_types/ │ │ │ └── diverse_types.proto │ │ └── helloworld/ │ │ └── helloworld.proto │ └── src/ │ ├── body.rs │ ├── client/ │ │ ├── grpc.rs │ │ ├── mod.rs │ │ └── service.rs │ ├── codec/ │ │ ├── buffer.rs │ │ ├── compression.rs │ │ ├── decode.rs │ │ ├── encode.rs │ │ └── mod.rs │ ├── codegen.rs │ ├── extensions.rs │ ├── lib.rs │ ├── macros.rs │ ├── metadata/ │ │ ├── encoding.rs │ │ ├── key.rs │ │ ├── map.rs │ │ ├── mod.rs │ │ └── value.rs │ ├── request.rs │ ├── response.rs │ ├── server/ │ │ ├── grpc.rs │ │ ├── mod.rs │ │ └── service.rs │ ├── service/ │ │ ├── interceptor.rs │ │ ├── layered.rs │ │ ├── mod.rs │ │ ├── recover_error.rs │ │ └── router.rs │ ├── status.rs │ ├── transport/ │ │ ├── channel/ │ │ │ ├── endpoint.rs │ │ │ ├── mod.rs │ │ │ ├── service/ │ │ │ │ ├── add_origin.rs │ │ │ │ ├── connection.rs │ │ │ │ ├── connector.rs │ │ │ │ ├── discover.rs │ │ │ │ ├── executor.rs │ │ │ │ ├── io.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── reconnect.rs │ │ │ │ ├── tls.rs │ │ │ │ └── user_agent.rs │ │ │ ├── tls.rs │ │ │ └── uds_connector.rs │ │ ├── error.rs │ │ ├── mod.rs │ │ ├── server/ │ │ │ ├── conn.rs │ │ │ ├── display_error_stack.rs │ │ │ ├── incoming.rs │ │ │ ├── io_stream.rs │ │ │ ├── mod.rs │ │ │ ├── service/ │ │ │ │ ├── io.rs │ │ │ │ ├── mod.rs │ │ │ │ └── tls.rs │ │ │ ├── tls.rs │ │ │ └── unix.rs │ │ ├── service/ │ │ │ ├── grpc_timeout.rs │ │ │ ├── mod.rs │ │ │ └── tls.rs │ │ └── tls.rs │ └── util.rs ├── tonic-build/ │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── client.rs │ ├── code_gen.rs │ ├── lib.rs │ ├── manual.rs │ └── server.rs ├── tonic-health/ │ ├── Cargo.toml │ ├── README.md │ ├── proto/ │ │ └── health.proto │ └── src/ │ ├── generated/ │ │ ├── grpc_health_v1.rs │ │ └── grpc_health_v1_fds.rs │ ├── lib.rs │ └── server.rs ├── tonic-prost/ │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── codec.rs │ └── lib.rs ├── tonic-prost-build/ │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── lib.rs │ └── tests.rs ├── tonic-protobuf/ │ ├── Cargo.toml │ └── src/ │ └── lib.rs ├── tonic-protobuf-build/ │ ├── Cargo.toml │ ├── README.md │ ├── build.rs │ └── src/ │ └── lib.rs ├── tonic-reflection/ │ ├── Cargo.toml │ ├── README.md │ ├── proto/ │ │ ├── reflection_v1.proto │ │ └── reflection_v1alpha.proto │ ├── src/ │ │ ├── generated/ │ │ │ ├── grpc_reflection_v1.rs │ │ │ ├── grpc_reflection_v1alpha.rs │ │ │ ├── reflection_v1_fds.rs │ │ │ └── reflection_v1alpha1_fds.rs │ │ ├── lib.rs │ │ └── server/ │ │ ├── mod.rs │ │ ├── v1.rs │ │ └── v1alpha.rs │ └── tests/ │ ├── server.rs │ └── versions.rs ├── tonic-types/ │ ├── Cargo.toml │ ├── README.md │ ├── proto/ │ │ ├── error_details.proto │ │ └── status.proto │ └── src/ │ ├── generated/ │ │ ├── google_rpc.rs │ │ └── types_fds.rs │ ├── lib.rs │ └── richer_error/ │ ├── error_details/ │ │ ├── mod.rs │ │ └── vec.rs │ ├── mod.rs │ └── std_messages/ │ ├── bad_request.rs │ ├── debug_info.rs │ ├── error_info.rs │ ├── help.rs │ ├── loc_message.rs │ ├── mod.rs │ ├── prec_failure.rs │ ├── quota_failure.rs │ ├── request_info.rs │ ├── resource_info.rs │ └── retry_info.rs ├── tonic-web/ │ ├── Cargo.toml │ ├── README.md │ └── src/ │ ├── call.rs │ ├── client.rs │ ├── layer.rs │ ├── lib.rs │ └── service.rs ├── tonic-xds/ │ ├── Cargo.toml │ ├── examples/ │ │ └── gen_test_proto.rs │ ├── proto/ │ │ └── test/ │ │ └── helloworld.proto │ └── src/ │ ├── client/ │ │ ├── channel.rs │ │ ├── cluster.rs │ │ ├── endpoint.rs │ │ ├── lb.rs │ │ ├── mod.rs │ │ └── route.rs │ ├── common/ │ │ ├── async_util.rs │ │ └── mod.rs │ ├── lib.rs │ ├── testutil/ │ │ ├── grpc.rs │ │ ├── mod.rs │ │ └── proto/ │ │ ├── helloworld.rs │ │ └── mod.rs │ └── xds/ │ ├── bootstrap.rs │ ├── mod.rs │ ├── resource/ │ │ ├── cluster.rs │ │ ├── endpoints.rs │ │ ├── listener.rs │ │ ├── mod.rs │ │ └── route_config.rs │ ├── routing.rs │ ├── uri.rs │ └── xds_manager.rs └── xds-client/ ├── Cargo.toml ├── examples/ │ └── basic.rs └── src/ ├── client/ │ ├── config.rs │ ├── mod.rs │ ├── retry.rs │ ├── watch.rs │ └── worker.rs ├── codec/ │ ├── mod.rs │ └── prost.rs ├── error.rs ├── lib.rs ├── message.rs ├── resource/ │ ├── mod.rs │ └── prost.rs ├── runtime/ │ ├── mod.rs │ └── tokio.rs └── transport/ ├── mod.rs └── tonic.rs