57 releases (9 breaking)
new 0.11.5 | Nov 20, 2024 |
---|---|
0.11.2 | Oct 9, 2024 |
0.8.8 | Jul 25, 2024 |
0.7.14 | Mar 21, 2024 |
0.2.7 | Oct 27, 2022 |
#514 in Authentication
1,478 downloads per month
Used in qcs
490KB
10K
SLoC
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 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.
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
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.
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.
Dependencies
~22–36MB
~579K SLoC