Metadata-Version: 2.4
Name: quonic
Version: 0.12.1
Summary: Quantum programming as simple as Python — 12+ backends, intelligent scheduling, 77 algorithms
Author-email: ChrisLee <Christina_Llap_Yuen@outlook.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/ChrisLee0721/QuoNic
Project-URL: Documentation, https://chrislee0721.github.io/QuoNic/
Project-URL: Repository, https://github.com/ChrisLee0721/QuoNic
Project-URL: Changelog, https://github.com/ChrisLee0721/QuoNic/blob/main/CHANGELOG.md
Keywords: quantum,quantum-computing,quantum-simulation,quantum-programming,qiskit,cirq,pennylane,qulacs,tensorcircuit,cuda-quantum,gpu,simulation,backend-agnostic,quantum-error-correction,quantum-machine-learning,grover,vqe,qaoa
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Provides-Extra: qiskit
Requires-Dist: qiskit>=1.0; extra == "qiskit"
Requires-Dist: qiskit-aer>=0.14; extra == "qiskit"
Provides-Extra: cirq
Requires-Dist: cirq>=1.0; extra == "cirq"
Provides-Extra: pennylane
Requires-Dist: pennylane>=0.36; extra == "pennylane"
Provides-Extra: quantum-inspire
Requires-Dist: qiskit-quantuminspire>=0.18; extra == "quantum-inspire"
Requires-Dist: quantuminspire>=4.0; extra == "quantum-inspire"
Requires-Dist: qiskit<2.4.0; extra == "quantum-inspire"
Provides-Extra: algorithms
Requires-Dist: numpy>=1.24; extra == "algorithms"
Requires-Dist: scipy>=1.10; extra == "algorithms"
Provides-Extra: viz
Requires-Dist: matplotlib>=3.5; extra == "viz"
Provides-Extra: qulacs
Requires-Dist: qulacs>=0.6; extra == "qulacs"
Provides-Extra: tensorcircuit
Requires-Dist: tensorcircuit>=0.12; extra == "tensorcircuit"
Provides-Extra: cudaq
Requires-Dist: cuda-quantum>=0.8; extra == "cudaq"
Provides-Extra: mindquantum
Requires-Dist: mindquantum>=0.9; extra == "mindquantum"
Provides-Extra: qpanda
Requires-Dist: pyqpanda3>=3.0; extra == "qpanda"
Provides-Extra: cqlib
Requires-Dist: cqlib>=0.1; extra == "cqlib"
Provides-Extra: originq
Requires-Dist: pyqpanda3>=3.0; extra == "originq"
Provides-Extra: gpu
Requires-Dist: cupy-cuda12x>=13.0; extra == "gpu"
Provides-Extra: ibm
Requires-Dist: qiskit-ibm-runtime>=0.20; extra == "ibm"
Provides-Extra: braket
Requires-Dist: amazon-braket-sdk>=1.50; extra == "braket"
Provides-Extra: azure
Requires-Dist: azure-quantum>=2.0; extra == "azure"
Provides-Extra: ionq
Requires-Dist: ionq-cirq>=0.5; extra == "ionq"
Provides-Extra: rigetti
Requires-Dist: pyquil>=4.0; extra == "rigetti"
Provides-Extra: xanadu
Requires-Dist: strawberryfields>=0.23; extra == "xanadu"
Provides-Extra: quera
Requires-Dist: qurry>=0.1; extra == "quera"
Provides-Extra: chem
Requires-Dist: pyscf>=2.5; extra == "chem"
Requires-Dist: openfermion>=1.6; extra == "chem"
Provides-Extra: chem-rdkit
Requires-Dist: quonic[chem]; extra == "chem-rdkit"
Requires-Dist: rdkit>=2024.3; extra == "chem-rdkit"
Provides-Extra: drug
Requires-Dist: quonic[chem-rdkit]; extra == "drug"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.26; extra == "docs"
Requires-Dist: mkdocs-material>=9.5; extra == "docs"
Provides-Extra: all-sim
Requires-Dist: quonic[cqlib,cudaq,mindquantum,qpanda,qulacs,tensorcircuit]; extra == "all-sim"
Provides-Extra: all-hw
Requires-Dist: quonic[azure,braket,ibm,ionq,originq,quera,rigetti,xanadu]; extra == "all-hw"
Provides-Extra: benchmark
Requires-Dist: matplotlib>=3.5; extra == "benchmark"
Requires-Dist: scipy>=1.10; extra == "benchmark"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: numpy>=1.24; extra == "dev"
Requires-Dist: scipy>=1.10; extra == "dev"
Requires-Dist: matplotlib>=3.5; extra == "dev"
Requires-Dist: ruff>=0.9; extra == "dev"
Dynamic: license-file

<p align="center">
  <img src="docs/local/banner.png" width="600" alt="QuoNic Banner" />
</p>

<p align="center">
  <b>Quantum programming, as simple as writing Python.</b>
</p>
<p align="center">
  No QuantumCircuit to learn, no backend to understand, no manual measure.<br>
  If you can write Python, you can write quantum programs.
</p>

<div align="center">

  <img src="https://img.shields.io/badge/Version-0.11.0-purple?style=for-the-badge" alt="Version" />
  <img src="https://img.shields.io/badge/Python-3.9+-3776AB?style=for-the-badge&logo=python&logoColor=white" alt="Python" />
  <img src="https://img.shields.io/badge/License-Apache%202.0-blue?style=for-the-badge" alt="License" />
  <img src="https://img.shields.io/badge/Tests-771%20passed-22C55E?style=for-the-badge" alt="Tests" />

</div>

<div align="center">

  <img src="https://img.shields.io/badge/Qiskit-1.0+-6929C4?style=for-the-badge&logo=qiskit&logoColor=white" alt="Qiskit" />
  <img src="https://img.shields.io/badge/Cirq-1.0+-FB8C00?style=for-the-badge" alt="Cirq" />
  <img src="https://img.shields.io/badge/Qulacs-0.6+-00599C?style=for-the-badge" alt="Qulacs" />
  <img src="https://img.shields.io/badge/CUDA--Q-0.8+-76B900?style=for-the-badge&logo=nvidia&logoColor=white" alt="CUDA-Q" />
  <img src="https://img.shields.io/badge/Algorithms-77-7C3AED?style=for-the-badge" alt="Algorithms" />
  <img src="https://img.shields.io/badge/Hardware-3%20verified-F59E0B?style=for-the-badge" alt="Hardware" />

</div>

<br>

## The Problem

Quantum programming today is unnecessarily complex. Writing a simple Bell state in Qiskit requires 10+ lines, understanding circuit objects, backend selection, and manual measurement. Switching frameworks means rewriting everything.

<table width="100%">
  <tr>
    <td width="33%" valign="top">
      <h3 align="center">Too Many Concepts</h3>
      <p align="center">QuantumCircuit, backend, transpile, measure_all — 8+ new concepts before writing a single gate.</p>
    </td>
    <td width="33%" valign="top">
      <h3 align="center">Framework Lock-in</h3>
      <p align="center">Code written for Qiskit can't run on Cirq. Switching frameworks means rewriting everything.</p>
    </td>
    <td width="33%" valign="top">
      <h3 align="center">No Smart Defaults</h3>
      <p align="center">Choosing the wrong simulation method can be 1000x slower. Users shouldn't need to know internals.</p>
    </td>
  </tr>
</table>

<br>

## The Solution

QuoNic abstracts away the complexity. Three lines of code, any backend, any hardware.

<p align="center">
  <img src="docs/local/preview_terminal.png" width="500" alt="QuoNic Terminal Preview" />
</p>

```python
from quonic import qgate, qshow
from quonic.gates import H, CX

qgate(H, 0)
qgate(CX, 0, 1)
qshow()
```

```bash
pip install quonic
```

<br>

## Features

| Feature | Description |
|---------|-------------|
| **3-line syntax** | `qgate` + `qshow` — that's it |
| **12+ backends** | One argument: `qshow(backend='qiskit')` |
| **77 algorithms** | Grover, Shor, VQE, QAOA, QFT, error correction, quantum ML |
| **Smart scheduler** | Auto-selects fastest method (statevector / stabilizer / MPS / density matrix) |
| **GPU acceleration** | `qshow(backend='gpu')` — 10x speedup |
| **Real hardware** | Origin Quantum, AWS Braket, Quantum Inspire verified |
| **Noise simulation** | Depolarizing, bit-flip, phase-flip, decoherence |
| **Error mitigation** | ZNE, readout calibration |
| **23 visualizations** | Circuit diagrams, Bloch sphere, histograms |

<br>

## Tech Stack

| Component | Technology | Description |
|-----------|-----------|-------------|
| **Core** | Python 3.9+ | IR, scheduler, compiler, noise models |
| **Backends** | Qiskit · Cirq · Qulacs · TensorCircuit · CUDA-Q · MindQuantum · QPanda3 | 12+ quantum backends |
| **GPU** | CuPy · Qulacs GPU · CUDA-Q | GPU-accelerated simulation |
| **Hardware** | Origin Quantum · AWS Braket · Quantum Inspire | Real quantum hardware |
| **Visualization** | Matplotlib | 23 chart types, lazy-loaded |

<br>

## Real Hardware

| Platform | Device | Status |
|----------|--------|--------|
| Origin Quantum | WK\_C180 | ✅ Verified |
| AWS Braket | Rigetti Cepheus-1-108Q | ✅ Verified |
| Quantum Inspire | Tuna-9 / Tuna-17 | ✅ Verified |

```python
qshow(backend='qpanda', device='WK_C180')
qshow(backend='qi', device='tuna9')
```

<br>

## Algorithms

```python
from quonic.algorithms import grover, vqe, qft, qaoa_maxcut

grover("11", 2)                    # Search
vqe(hamiltonian, 2)                # Chemistry
qft(n_qubits=4)                    # Fourier Transform
qaoa_maxcut(edges, n_qubits=3)     # Optimization
```

| Domain | Algorithms |
|--------|-----------|
| **Foundational** | QFT, Deutsch-Jozsa, Bernstein-Vazirani, Simon, QPE |
| **Search & Optimization** | Grover, QAOA (MaxCut/TSP/MIS/Knapsack), quantum annealing |
| **Chemistry** | VQE, Hamiltonian simulation, Trotter, Jordan-Wigner |
| **Machine Learning** | QNN, QSVM, QGAN, QCNN, QGNN, QPCA, QRL |
| **Error Correction** | Bit/phase flip, Shor code, Steane code, surface code, color code |
| **Communication** | Teleportation, BB84, E91, superdense coding |

<br>

## Roadmap

- [x] **Core API:** `qgate`, `qshow`, `reset` — minimal syntax
- [x] **12+ backends:** Qiskit, Cirq, Qulacs, TensorCircuit, CUDA-Q, MindQuantum, QPanda3
- [x] **77 algorithm templates:** From Grover to quantum ML
- [x] **Smart scheduler:** Auto-select fastest simulation method
- [x] **GPU acceleration:** CuPy, Qulacs GPU, CUDA-Q
- [x] **Real hardware:** Origin Quantum, AWS Braket, Quantum Inspire
- [x] **Noise simulation:** Depolarizing, bit-flip, phase-flip, decoherence
- [x] **Error mitigation:** ZNE, readout calibration
- [x] **Visualization:** 23 chart types with Matplotlib
- [x] **Documentation:** 92 examples, bilingual (EN/ZH)
- [ ] **More backends:** IonQ, Rigetti, Xanadu, QuEra
- [ ] **Quantum networking:** Multi-node quantum communication
- [ ] **Fault-tolerant computing:** Logical qubit operations

<br>

## Docs

- [Quick Start](docs/quickstart.md) — 5 minutes
- [Examples](docs/examples/) — 92 examples, bilingual
- [API Reference](docs/api/) — all modules
- [Tutorials](docs/tutorials/) — step-by-step guides

<br>

## Contributing

Fork → branch → PR.

See [CONTRIBUTING.md](CONTRIBUTING.md) for setup and code style.

<br>

## License

[Apache 2.0](LICENSE) — friendly to commercial use, with patent protection.

<br>

<p align="center">
  <sub>Built with ❤️ by <a href="https://github.com/ChrisLee0721">Lee LapYuen</a> · <a href="README.zh-CN.md">中文文档</a></sub>
</p>
