qcs-api-client-grpc
This crate provides an autogenerated gRPC client for the QCS API, along with helper utilities for automatically loading credentials from a user's QCS config and keeping authentication tokens refreshed.
get_channel: create aChannelto the given gRPC endpoint with QCS authentication automatically set up, that routes requests through client-side HTTP, HTTPS, or SOCKS5 proxies based on the presence ofHTTPS_PROXYorHTTP_PROXYenvironment variables.wrap_channel: wrap an existingChannelwith QCS authentication.
Quick Start
See docs.rs for a quick start guide.
Proxies
The get_channel function configures the returned Channel to route requests through a client proxy
based on the presence of environment variables HTTPS_PROXY and/or HTTP_PROXY. The variable names can be
all-uppercase or all-lowercase, but the all-uppercase variants will take precedence.
Currently, the supported proxy schemes are http, https, and socks5.
There are some caveats to the proxy configuration:
- If both variables are defined, neither can be a
socks5proxy, unless they are both the same value. - If only one variable is defined, and it is a
socks5proxy, all traffic will routed through it.
Tracing
This crates also supports tracing via tower_http::trace. It additionally customizes spans according
to OpenTelemetry gRPC semantic conventions.
This functionality is available using the "tracing" feature. The "tracing-opentelemetry" feature extends capabilities by supporting dynamically configured span attributes (such as "rpc.grpc.request.metadata.") and context propagation. See qcs_api_client_common for configuration details.