{"id":28252093,"url":"https://github.com/cool-japan/quantrs","last_synced_at":"2026-01-23T02:57:08.746Z","repository":{"id":292957167,"uuid":"981918962","full_name":"cool-japan/quantrs","owner":"cool-japan","description":"QuantRS2: Rust Quantum Computing Framework","archived":false,"fork":false,"pushed_at":"2026-01-20T11:27:14.000Z","size":10925,"stargazers_count":15,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-20T14:42:04.009Z","etag":null,"topics":["artificial-intelligence","machine-learning","quantum","quantum-computing","rust","rust-crate","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cool-japan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-12T05:25:44.000Z","updated_at":"2026-01-10T21:44:16.000Z","dependencies_parsed_at":"2025-05-13T02:02:10.731Z","dependency_job_id":"8c5c3854-f422-4c77-a057-76ab4212d044","html_url":"https://github.com/cool-japan/quantrs","commit_stats":null,"previous_names":["cool-japan/quantrs"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/cool-japan/quantrs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cool-japan%2Fquantrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cool-japan%2Fquantrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cool-japan%2Fquantrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cool-japan%2Fquantrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cool-japan","download_url":"https://codeload.github.com/cool-japan/quantrs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cool-japan%2Fquantrs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28679139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"online","status_checked_at":"2026-01-23T02:00:08.296Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","machine-learning","quantum","quantum-computing","rust","rust-crate","rust-lang"],"created_at":"2025-05-19T15:16:08.814Z","updated_at":"2026-01-23T02:57:08.741Z","avatar_url":"https://github.com/cool-japan.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QuantRS2: Rust Quantum Computing Framework\n\n[![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](https://github.com/cool-japan/quantrs)\n\n| Crate | Crate Version | Python Package | Documentation |\n|-------|--------------|---------------|---------------|\n| **quantrs2-core** | [![Crates.io](https://img.shields.io/crates/v/quantrs2-core.svg)](https://crates.io/crates/quantrs2-core) | | [![Documentation](https://docs.rs/quantrs2-core/badge.svg)](https://docs.rs/quantrs2-core) |\n| **quantrs2-circuit** | [![Crates.io](https://img.shields.io/crates/v/quantrs2-circuit.svg)](https://crates.io/crates/quantrs2-circuit) | | [![Documentation](https://docs.rs/quantrs2-circuit/badge.svg)](https://docs.rs/quantrs2-circuit) |\n| **quantrs2-sim** | [![Crates.io](https://img.shields.io/crates/v/quantrs2-sim.svg)](https://crates.io/crates/quantrs2-sim) | | [![Documentation](https://docs.rs/quantrs2-sim/badge.svg)](https://docs.rs/quantrs2-sim) |\n| **quantrs2-device** | [![Crates.io](https://img.shields.io/crates/v/quantrs2-device.svg)](https://crates.io/crates/quantrs2-device) | | [![Documentation](https://docs.rs/quantrs2-device/badge.svg)](https://docs.rs/quantrs2-device) |\n| **quantrs2-ml** | [![Crates.io](https://img.shields.io/crates/v/quantrs2-ml.svg)](https://crates.io/crates/quantrs2-ml) | | [![Documentation](https://docs.rs/quantrs2-ml/badge.svg)](https://docs.rs/quantrs2-ml) |\n| **quantrs2-anneal** | [![Crates.io](https://img.shields.io/crates/v/quantrs2-anneal.svg)](https://crates.io/crates/quantrs2-anneal) | | [![Documentation](https://docs.rs/quantrs2-anneal/badge.svg)](https://docs.rs/quantrs2-anneal) |\n| **quantrs2-tytan** | [![Crates.io](https://img.shields.io/crates/v/quantrs2-tytan.svg)](https://crates.io/crates/quantrs2-tytan) | | [![Documentation](https://docs.rs/quantrs2-tytan/badge.svg)](https://docs.rs/quantrs2-tytan) |\n| **quantrs2-py** | | [![PyPI](https://img.shields.io/pypi/v/quantrs2.svg)](https://pypi.org/project/quantrs2/) | |\n\nQuantRS2 (`/kwɒntərz tu:/`) is a comprehensive Rust-based quantum computing framework that provides a modular, high-performance toolkit for quantum simulation, algorithm development, and hardware interaction.\n\n**Current Version**: v0.1.2\n\n## Features\n\n- **100% Pure Rust**: No C/C++/Fortran dependencies - builds seamlessly on all platforms without external library requirements\n- **Type-Safe Quantum Circuits**: Using Rust's const generics for compile-time verification of qubit counts and operations\n- **High Performance**: Leveraging SIMD, multi-threading, tensor networks, and optional GPU acceleration for efficient simulation\n- **SciRS2 Integration**: Deep integration with Scientific Rust (SciRS2) for enhanced numerical computing, memory management, and SIMD operations\n- **OxiBLAS Backend**: Pure Rust BLAS implementation replacing OpenBLAS dependencies\n- **Multiple Paradigms**: Support for both gate-based quantum computing and quantum annealing\n- **Hardware Connectivity**: Connect to real quantum devices from IBM, Azure Quantum, and other platforms\n- **Comprehensive Gate Set**: Includes all standard gates plus S/T-dagger, Square root of X, and controlled variants\n- **Realistic Noise Models**: Simulate quantum hardware with configurable noise channels (bit flip, phase flip, depolarizing, amplitude/phase damping) and IBM device-specific T1/T2 relaxation models\n- **Quantum Error Correction**: Protect quantum information with error correction codes (bit flip code, phase flip code, Shor code, 5-qubit perfect code)\n- **Tensor Network Simulation**: Memory-efficient simulation of quantum circuits with limited entanglement, featuring specialized contraction path optimization for QFT, QAOA, and other common circuit patterns with benchmarking tools to evaluate performance gains\n- **Stabilizer Simulation**: Efficient O(n²) simulation of Clifford circuits using tableau representation, ideal for quantum error correction\n- **Quantum Algorithms**: Built-in implementations of QAOA, Grover's search, QFT, QPE, and simplified Shor's algorithm\n- **Circuit Optimization**: Comprehensive optimization framework with gate fusion, peephole optimization, and hardware-aware compilation\n- **IBM Quantum Integration**: Connect to real IBM quantum hardware with authentication, circuit transpilation, job submission, and result processing\n- **Zero-Cost Abstractions**: Maintaining Rust's performance while providing intuitive quantum programming interfaces\n- **Quality Code**: Follows modern Rust best practices with no compiler warnings or deprecation issues\n\n## Project Structure\n\nQuantRS2 is organized as a workspace with several crates:\n\n- **[quantrs2-core](core/README.md)**: Core types, traits, and abstractions shared across the ecosystem\n- **[quantrs2-circuit](circuit/README.md)**: Quantum circuit representation and DSL\n- **[quantrs2-sim](sim/README.md)**: Quantum simulators (state-vector and tensor-network)\n- **[quantrs2-anneal](anneal/README.md)**: Quantum annealing support and D-Wave integration\n- **[quantrs2-device](device/README.md)**: Remote quantum hardware connections (IBM Quantum and other providers)\n- **[quantrs2-ml](ml/README.md)**: Quantum machine learning including QNNs, GANs, and specialized HEP classifiers\n- **[quantrs2-py](py/README.md)**: Python bindings with PyO3\n- **[quantrs2-tytan](tytan/README.md)**: High-level quantum annealing library\n- **quantrs2-symengine-pure**: Pure Rust symbolic computation engine (no C++ dependencies)\n\n## Getting Started\n\nFirst, add QuantRS2 to your project:\n\n```toml\n[dependencies]\nquantrs2-core = \"0.1.2\"\nquantrs2-circuit = \"0.1.2\"\nquantrs2-sim = \"0.1.2\"\n```\n\n### Creating a Bell State\n\n```rust\nuse quantrs2_circuit::builder::Circuit;\nuse quantrs2_sim::statevector::StateVectorSimulator;\n\nfn main() {\n    // Create a circuit with 2 qubits\n    let mut circuit = Circuit::\u003c2\u003e::new();\n\n    // Build a Bell state circuit: H(0) followed by CNOT(0, 1)\n    circuit.h(0).unwrap()\n           .cnot(0, 1).unwrap();\n\n    // Run the circuit on the state vector simulator\n    let simulator = StateVectorSimulator::new();\n    let result = circuit.run(simulator).unwrap();\n\n    // Print the resulting probabilities\n    for (i, prob) in result.probabilities().iter().enumerate() {\n        let bits = format!(\"{:02b}\", i);\n        println!(\"|{}⟩: {:.6}\", bits, prob);\n    }\n}\n```\n\n### Creating a Superposition State\n\n```rust\nuse quantrs2_circuit::builder::Circuit;\nuse quantrs2_sim::statevector::StateVectorSimulator;\n\nfn main() {\n    // Create a circuit with 3 qubits\n    let mut circuit = Circuit::\u003c3\u003e::new();\n\n    // Apply Hadamard gates to all qubits to create superposition\n    circuit.h(0).unwrap()\n           .h(1).unwrap()\n           .h(2).unwrap();\n\n    // Run the circuit\n    let simulator = StateVectorSimulator::new();\n    let result = circuit.run(simulator).unwrap();\n\n    // Each basis state should have equal probability (1/8)\n    for (i, prob) in result.probabilities().iter().enumerate() {\n        let bits = format!(\"{:03b}\", i);\n        println!(\"|{}⟩: {:.6}\", bits, prob);\n    }\n}\n```\n\n## Examples\n\nCheck out the `examples` directory for more quantum algorithms and demonstrations:\n\n- Bell states and entanglement\n- Quantum teleportation\n- Extended gate set examples (S/T-dagger, √X, controlled gates)\n- Noisy quantum simulation with various error channels\n- Realistic IBM hardware noise models\n- Advanced noise effects on complex quantum algorithms\n- Quantum error correction (bit flip code, phase flip code, 5-qubit perfect code)\n- Grover's search algorithm\n- Quantum Fourier transform\n- VQE (Variational Quantum Eigensolver)\n- Tensor network optimization benchmarks (comparing different contraction strategies for QFT and QAOA)\n- IBM Quantum hardware connectivity examples\n- Quantum annealing optimization problems:\n  - Maximum Cut (MaxCut)\n  - Graph Coloring\n  - Traveling Salesman Problem (TSP)\n  - 3-Rooks problem\n\n### Running Examples\n\nThe examples are divided into two categories:\n\n1. **Quantum Annealing Examples** (no special dependencies):\n   ```bash\n   # Run MaxCut example\n   cargo run --bin max_cut\n\n   # Run Graph Coloring example\n   cargo run --bin graph_coloring\n\n   # Run Traveling Salesman example\n   cargo run --bin traveling_salesman\n   ```\n\n2. **Quantum Simulation Examples** (require the `simulation` feature):\n   ```bash\n   # Run Bell State example\n   cargo run --features simulation --bin bell_state\n\n   # Run optimized simulator example\n   cargo run --features simulation --bin optimized_sim_small\n\n   # Run GPU-accelerated simulator example\n   cargo run --features simulation,gpu --bin gpu_simulation\n\n   # Run extended gates example\n   cargo run --features simulation --bin extended_gates\n\n   # Run noisy simulator examples\n   cargo run --features simulation --bin noisy_simulator\n   cargo run --features simulation --bin extended_gates_with_noise\n\n   # Run IBM Quantum integration examples\n   cargo run --features simulation,ibm --bin ibm_quantum_hello\n\n   # Run quantum error correction examples\n   cargo run --features simulation --bin error_correction\n   cargo run --features simulation --bin phase_error_correction\n   cargo run --features simulation --bin five_qubit_code\n   cargo run --features simulation --bin error_correction_comparison\n\n   # Run tensor network simulator examples\n   cargo run --features simulation --bin tensor_network_sim\n   cargo run --features simulation --bin tensor_network_optimization\n   ```\n\nNote: Simulation examples require additional dependencies including linear algebra libraries.\n\n## Performance\n\nQuantRS2 is designed for high performance quantum simulation:\n\n- Efficiently simulates up to 30+ qubits on standard hardware\n- Parallel execution via SciRS2 parallel_ops\n- Optional GPU acceleration with WGPU\n- Memory-efficient algorithms for large qubit counts (25+)\n- Multiple simulation backends:\n  - State vector simulator for general-purpose circuits\n  - Tensor network simulator for circuits with limited entanglement\n  - Automatic selection based on circuit structure\n- Optimized contraction paths for tensor networks to minimize computational cost\n\n### Benchmark Results\n\n**Core Gate Operations** (measured on Apple Silicon):\n\n| Qubits | Hadamard | CNOT | Fidelity |\n|--------|----------|------|----------|\n| 4 | 57 ns | 100 ns | 158 ns |\n| 6 | 143 ns | 298 ns | 491 ns |\n| 8 | 339 ns | 847 ns | 989 ns |\n| 10 | 1.09 µs | 2.52 µs | 3.01 µs |\n| 12 | 3.88 µs | 9.34 µs | 13.9 µs |\n\n**Circuit Patterns**:\n- Bell State: 12.2 µs\n- GHZ 5-qubit: 13.1 µs\n- QFT 5-qubit: 14.3 µs\n\n**Specialized Simulator** (8 qubits, 20 gates):\n- Base simulator: 2434 ms\n- Specialized simulator: 0.6 ms (**4000x speedup**)\n\nRun benchmarks with:\n```bash\ncargo bench -p quantrs2-core\ncargo bench -p quantrs2-circuit\n```\n\n## Roadmap\n\nSee [TODO.md](TODO.md) for the development roadmap and upcoming features.\n\n## Development\n\n### Code Quality\n\nThe QuantRS2 project maintains high code quality standards:\n\n- All code compiles with zero warnings when using `cargo clippy -- -D warnings`\n- Modern Rust APIs are used throughout (rand 0.9+, ndarray 0.15+)\n- CI checks enforce compilation without warnings\n- Dead code is appropriately marked with `#[allow(dead_code)]` for future API stability\n\n### Build Requirements\n\nFor normal builds:\n```bash\ncargo build\n```\n\nFor a completely warning-free build:\n```bash\ncargo clippy --all -- -D warnings\n```\n\n#### Building on macOS (Apple Silicon)\n\nQuantRS2 v0.1.2 is **Pure Rust** and builds seamlessly on macOS (both Intel and Apple Silicon):\n\n```bash\ncargo build --release\n```\n\nNo external C/C++ dependencies are required. The project uses:\n- **OxiBLAS**: Pure Rust BLAS implementation (no OpenBLAS/LAPACK)\n- **SciRS2**: Pure Rust scientific computing library\n- **quantrs2-symengine-pure**: Pure Rust symbolic computation\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. Before submitting, please ensure:\n\n1. Your code passes all tests and builds without warnings\n2. You've added appropriate comments and documentation\n3. You've updated any relevant examples\n\n## Optional Features\n\nQuantRS2 provides several optional features:\n\n- **parallel**: Enables parallel execution using Rayon (enabled by default)\n- **gpu**: Enables GPU acceleration using WGPU\n- **ibm**: Enables IBM Quantum hardware integration\n- **dwave**: Enables D-Wave quantum annealing integration with symbolic problem formulation (Pure Rust)\n\nTo use these features, add them to your dependencies:\n\n```toml\n[dependencies]\nquantrs2-sim = { version = \"0.1.2\", features = [\"parallel\", \"gpu\"] }\nquantrs2-device = { version = \"0.1.2\", features = [\"ibm\"] }\n```\n\n### GPU Acceleration\n\nThe `gpu` feature enables GPU-accelerated quantum simulation using WGPU:\n\n```toml\n[dependencies]\nquantrs2-sim = { version = \"0.1.2\", features = [\"gpu\"] }\n```\n\nThis requires a WGPU-compatible GPU (most modern GPUs). The GPU acceleration implementation uses compute shaders to parallelize quantum operations, providing significant speedup for large qubit counts.\n\nUse the `GpuStateVectorSimulator` to run circuits on the GPU:\n\n```rust\nuse quantrs2_circuit::prelude::*;\nuse quantrs2_sim::gpu::GpuStateVectorSimulator;\n\nasync fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    // Check if GPU acceleration is available\n    if GpuStateVectorSimulator::is_available() {\n        // Create a GPU simulator\n        let simulator = GpuStateVectorSimulator::new().await?;\n\n        // Create and run a circuit\n        let circuit = Circuit::\u003c10\u003e::new().h(0).cnot(0, 1);\n        let result = simulator.run(\u0026circuit);\n\n        // Process results\n        println!(\"Result: {:?}\", result);\n    } else {\n        println!(\"GPU acceleration not available\");\n    }\n\n    Ok(())\n}\n```\n\nFor synchronous code, you can use the blocking constructor:\n\n```rust\nlet simulator = GpuStateVectorSimulator::new_blocking()?;\n```\n\nThe GPU simulator provides significant performance benefits for circuits with more than 10 qubits, often achieving 10-100x speedups over CPU simulation for large circuits (20+ qubits).\n\n### IBM Quantum Integration\n\nThe `ibm` feature enables connection to IBM Quantum hardware:\n\n```toml\n[dependencies]\nquantrs2-device = { version = \"0.1.2\", features = [\"ibm\"] }\n```\n\nTo use IBM Quantum, you'll need an IBM Quantum account and API token. Use the token to authenticate:\n\n```rust\nuse quantrs2_device::{create_ibm_client, create_ibm_device};\n\nasync fn run() {\n    let token = \"your_ibm_quantum_token\";\n    let device = create_ibm_device(token, \"ibmq_qasm_simulator\", None).await.unwrap();\n\n    // Check device properties\n    let properties = device.properties().await.unwrap();\n    println!(\"Device properties: {:?}\", properties);\n\n    // Execute circuits...\n}\n```\n\n### D-Wave Integration\n\nThe `dwave` feature enables symbolic problem formulation for quantum annealing:\n\n```toml\n[dependencies]\nquantrs2-tytan = { version = \"0.1.2\", features = [\"dwave\"] }\n```\n\nQuantRS2 uses a **Pure Rust** symbolic computation engine (`quantrs2-symengine-pure`), eliminating all C/C++ dependencies for symbolic math operations. No external library installation required.\n\n## Testing\n\n### Recommended Test Commands\n\nFor most development and CI purposes, use:\n\n```bash\n# Basic functionality testing\ncargo test --features \"parallel\"\n\n# Standard development testing with visualization\ncargo test --features \"parallel,scirs,plotters\"\n```\n\n### Platform-Specific Notes\n\n#### All Platforms (Pure Rust)\n\nQuantRS2 v0.1.2 is **100% Pure Rust** and supports `--all-features` on all platforms:\n\n```bash\n# ✅ Works on all platforms (macOS, Linux, Windows)\ncargo test --all-features\n\n# Or for specific feature sets\ncargo test --features \"parallel,scirs,plotters\"\n```\n\n#### Feature-Specific Testing\n\n- **GPU features**: Require compatible hardware (WGPU-supported GPU)\n- **IBM Quantum**: Requires valid API credentials for integration tests\n\n## License\n\nThis project is licensed under either:\n\n- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcool-japan%2Fquantrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcool-japan%2Fquantrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcool-japan%2Fquantrs/lists"}