ArcQML Rust-native quantum machine-learning framework
Repository Applicable version · ArcQML 0.1.0
Build circuits, simulate quantum states, and train parameters with the Rust-native API, or use the common workflows through Python.
On this page
Framework overview
ArcQML is a quantum machine-learning framework implemented natively in Rust, with Rust and Python interfaces. A unified interface supports fixed and parameterized circuits, state-vector evolution of single or batched quantum states, and observables defined by Pauli operators and their linear combinations. Circuit outputs are differentiable Tensor objects: expectation values can be read directly or used in losses, classical tensor operations, and other differentiable computations, joining quantum and classical computation in one automatic differentiation chain.
For parameterized circuits, ArcQML Runtime provides native numerical gate application, gate derivatives, circuit-plan execution, and adjoint backpropagation. The public Rust layer handles circuits and parameters, observable compilation and expectation evaluation, outer batch scheduling, autograd graphs, losses, and optimizers. After backward, gradients flow from the classical loss through the graph to circuit parameters, which optimizers such as Adam or SGD update. These capabilities support variational quantum eigensolvers, quantum neural networks, quantum-state analysis, and small-scale unitary synthesis.
Supported capabilities
| Area | Current implementation |
|---|---|
| Quantum states | Normalized dense C64 pure-state vectors |
| Circuits | Fixed gates, parameterized gates, custom unitaries, parameter sharing, and concatenation |
| Training | Tensor autograd and quantum adjoint differentiation |
| Observables | PauliString and real-coefficient SparsePauliOp |
| Analysis | Probabilities, marginals, fidelity, Bloch vectors, and terminal sampling |
| Losses and optimization | Rust supports MSE/L1/cross entropy, custom losses composed from operators, and SGD/Adam |
| User interfaces | Full Rust API; the Python native extension exposes common circuit, simulation, analysis, and training interfaces |
Current limitations
The current backend supports only dense C64 pure-state vector simulation on CPUs. CUDA, sparse states, noise models, density matrices, quantum channels, mid-circuit measurement, and classical conditional control are not included. BatchStateVectorSimulator represents independent initial states sharing one circuit and its parameters; batch sampling is not currently available. Weight checkpoints save only circuit parameters, not circuit topology, optimizer state, training-data position, or random state. The Python API exposes a commonly used subset; use the native Rust API for full capabilities. Future support is defined by actual release notes.
Release status and license
ArcQML uses hybrid licensing. This is a source-available release, not an OSI-approved open-source release:
- Original public source is covered by the ArcQML Noncommercial Source License. Only noncommercial use is permitted; modifications and integrated works must disclose their complete source under its terms. Commercial use requires a separate license.
- The official closed-source Runtime is covered by the Noncommercial Binary License. The public-source license grants an exception for the unmodified official Runtime, so its private implementation need not be disclosed. User integration code must still be disclosed.
- The public framework, closed-source Runtime, and third-party components within a wheel retain their respective licenses. Third-party material retains its original licenses; see Third-party notices, the versioned license texts, and the SBOM (software bill of materials) included in the package.
- Rights already granted for lawfully obtained MIT / Apache copies are not revoked by this release-policy change.
Maintainer: liuxl. Commercial licensing and license inquiries: quill@arclightquantum.com. See Release status and license in the ArcQML repository for complete details.
This is an experimental Windows preview using Rust 1.98.0 and CPython 3.11. Memory-safety issue S01, Linux acceptance, and formatting cleanup are deferred; see the Release notes and Security limitations. Use only the libraries and wheel supplied with this release; do not mix historical artifacts.