[package]
name = "qcs"
description = "High level interface for running Quil on a QPU"
version = "0.17.2"
edition = "2018"
license = "Apache-2.0"
repository = "https://github.com/rigetti/qcs-sdk-rust"
keywords = ["pyquil", "SDK", "Rigetti", "Quil", "Quantum"]
categories = ["api-bindings", "compilers", "science", "emulators"]
readme = "./README.md"

[features]
manual-tests = []
tracing = ["dep:tracing", "qcs-api-client-common/tracing", "qcs-api-client-grpc/tracing", "qcs-api-client-openapi/tracing"]
tracing-config = ["tracing", "qcs-api-client-common/tracing-config", "qcs-api-client-grpc/tracing-config", "qcs-api-client-openapi/tracing-config"]
otel-tracing = ["tracing-config", "qcs-api-client-grpc/otel-tracing", "qcs-api-client-openapi/otel-tracing"]

[dependencies]
cached = "0.44.0"
enum-as-inner = "0.5.1"
futures = "0.3.24"
indexmap = "1.9.1"
lazy_static = "1.4.0"
ndarray.workspace = true
num = { version = "0.4.0", features = ["serde"] }
qcs-api.workspace = true
qcs-api-client-common.workspace = true
qcs-api-client-openapi.workspace = true
qcs-api-client-grpc.workspace = true
quil-rs.workspace = true
reqwest = { version = "0.11.20", default-features = false, features = [
  "rustls-tls",
  "json",
] }
rmp-serde = "1.1.1"
serde = { version = "1.0.145", features = ["derive"] }
serde_json.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["fs", "rt-multi-thread"] }
toml = "0.7.3"
tracing = { version = "0.1", optional = true, features = ["log"] }
uuid = { version = "1.2.1", features = ["v4"] }
tonic = { version = "0.9.2", features = ["tls", "tls-roots"] }
zmq = { version = "0.10.0" }
itertools = "0.11.0"
derive_builder = "0.12.0"
async-trait = "0.1.73"

[dev-dependencies]
erased-serde = "0.3.23"
float-cmp = "0.9.0"
hex = "0.4.3"
maplit = "1.0.2"
qcs-api-client-grpc = { workspace = true, features = ["server"] }
simple_logger = { version = "4.1.0", default-features = false }
tempfile = "3.3.0"
tokio = { version = "1.21.2", features = ["macros", "rt-multi-thread"] }
warp = { version = "0.3.3", default-features = false }
regex = "1.7.0"
test-case = "3.1.0"
tracing-subscriber = "0.3.17"
rstest = "0.17.0"
insta = "1.29.0"

[build-dependencies]
built = "0.6.1"
