#qcs #rigetti #quantum #api-bindings

qcs-api-client-grpc

gRPC client for the QCS API

63 releases (10 breaking)

0.12.0 Mar 20, 2025
0.11.8 Jan 27, 2025
0.11.5 Nov 20, 2024
0.8.8 Jul 25, 2024
0.2.7 Oct 27, 2022

#497 in Authentication

Download history 819/week @ 2024-12-06 248/week @ 2024-12-13 91/week @ 2024-12-20 177/week @ 2024-12-27 271/week @ 2025-01-03 280/week @ 2025-01-10 204/week @ 2025-01-17 773/week @ 2025-01-24 574/week @ 2025-01-31 1002/week @ 2025-02-07 300/week @ 2025-02-14 250/week @ 2025-02-21 543/week @ 2025-02-28 910/week @ 2025-03-07 257/week @ 2025-03-14 373/week @ 2025-03-21

2,093 downloads per month
Used in qcs

Apache-2.0

520KB
10K SLoC

qcs-api-client-grpc

crates.io version crates.io license - Apache-2.0 crates.io recent downloads docs.rs badge

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 a Channel 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 of HTTPS_PROXY or HTTP_PROXY environment variables.
  • wrap_channel: wrap an existing Channel 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

~24–39MB
~620K SLoC