[package] name = "wai-quantum-service" version = "0.2.4" edition = "2024" license = "Apache-2.0" description = "The WAI quantum stack as a public job service: OpenQASM 3 circuits run by the strongest method each admits (bit-exact and exact state vectors, stabilizer tableaux, matrix product states, sparse Pauli dynamics), every result naming its method and its accuracy and sealed with the service's key; each job in its own process, inside a memory budget." repository = "https://git.transaction.science/Transaction-Science/open-standards" publish = false [dependencies] axum = "0.8" # The connection loop (http::serve): axum's own takes no header timeout. hyper = { version = "1", features = ["http1", "server"] } hyper-util = { version = "0.1", features = ["tokio", "service"] } tokio = { version = "1", features = ["rt-multi-thread", "macros", "process", "time", "sync", "net", "io-util"] } serde = { version = "1", features = ["derive"] } # float_roundtrip: a number a client sends back reads as the double it was # (the default reader rounds twice), so its receipt still verifies. # raw_value: a JSON-RPC id is echoed as the text it was sent as (src/http.rs). serde_json = { version = "1", features = ["float_roundtrip", "raw_value"] } getrandom = "0.4" # The job store's content addresses (src/store.rs), as the engine's receipts use. blake3 = "=1.8.7" # A job's status as server-sent events (src/http.rs): a stream built from its changes. futures-util = { version = "=0.3.34", default-features = false } wai-quantum = { path = "../wai-quantum", default-features = false, features = ["quantum_engine", "quantum_receipt", "quantum_qec", "quantum_noise", "quantum_fabric", "quantum_sv_metal", "quantum_cutrank_metal"] } # wasmQ envelopes run as jobs (POST /v1/wasmq, run_wasmq): opened and planned in a # reading child, run in a worker on the native engine, sealed with the worker's energy. wai-wasmq = { path = "../wai-wasmq" } # GET /metrics, in the text exposition format (src/http.rs). wai-metrics = { path = "../wai-metrics" } # A program written for a task (src/writer.rs): the loop, its transcript and the # scripted model; with `coder`, the model the writer process runs. wai-quantum-writer = { path = "../wai-quantum-writer", default-features = false } [features] default = ["coder"] # The writer process's model (North Mini Code 1.0, on the pure-Rust inference # runtime). Without it, the writer runs only a script (WAI_QSVC_WRITER_SCRIPT). coder = ["wai-quantum-writer/coder"] # proc_pid_rusage and waitid, for each job's energy (src/energy.rs) and a # child's memory (src/jobs.rs); setrlimit, for a reader's (src/offload.rs). [target.'cfg(unix)'.dependencies] libc = "0.2" [profile.release] lto = "thin"