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 aChannel
to 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_PROXY
orHTTP_PROXY
environment variables.wrap_channel
: wrap an existingChannel
with QCS authentication.
See docs.rs for a quick start guide.
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
socks5
proxy, unless they are both the same value. - If only one variable is defined, and it is a
socks5
proxy, all traffic will routed through it.
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.