How andyferns/oqci works
OQCI is a vendor-neutral quantum-circuit compiler: source circuits are translated into shared IR, optimized, lowered for a selected target, then prepared as backend executables. The graph also shows the local visualization companion and simulator adapters, which are documented product capabilities. Compiler orchestration and lowering details are only partly sampled, so their internal wiring is shown at the documented subsystem level; IBM submission is explicitly not implemented.
Main entry points: compile.rs Compiler orchestration · qc.rs QC-IR · backend/mod.rs Backend contract · lowering/mod.rs Target lowering
Components 26
Inputs and visualization
- CLI pipeline
src/cli/pipeline.rs - Python bindings
python/src/lib.rs
Compiler pipeline
- OpenQASM frontend
src/frontend/openqasm/mod.rs - CUDA-Q frontend
src/frontend/cudaq/mod.rs - Qiskit frontend
src/frontend/qiskit/mod.rs - Compiler orchestration
src/compile.rs - QC-IR
src/ir/qc.rs - QCO-IR
src/ir/qco.rs - Pass manager
src/pass/mod.rs - QIR lowering
src/ir/qir.rs
Targets and execution
- Target profile
src/target/mod.rs - Target lowering
src/lowering/mod.rs - Legality checks
src/target/legality.rs - Backend contract
src/backend/mod.rs - Executable artifact
src/backend/executable.rs - Simulator backend
src/backend/simulator.rs - Qiskit Aer adapter
python/oqci/backends/aer.py - CUDA-Q adapter
python/oqci/backends/cudaq.py
Live visualization
- Pipeline visualizer
frontend/src/App.tsx - Pipeline state
frontend/src/state/pipelineStore.ts - WebSocket client
frontend/src/ws/client.ts - Visualization server
server/src/main.rs - File watch
server/src/watch.rs - Server compilation
server/src/compile.rs
Other components
- Circuit source
- Browser user
Connections 32
- Circuit source → CLI pipeline: provides source
- Circuit source → Python bindings: provides circuit
- CLI pipeline → Compiler orchestration: invokes
- Python bindings → Compiler orchestration: compiles via
- Compiler orchestration → OpenQASM frontend: selects frontend
- Compiler orchestration → CUDA-Q frontend: selects frontend
- Compiler orchestration → Qiskit frontend: selects frontend
- OpenQASM frontend → QC-IR: translates to
- CUDA-Q frontend → QC-IR: translates to
- Qiskit frontend → QC-IR: translates to
- Compiler orchestration → Pass manager: runs passes
- QC-IR → QCO-IR: converts to
- Pass manager → QC-IR: optimizes
- Compiler orchestration → QIR lowering: emits
- Compiler orchestration → Target lowering: requests lowering
- Backend contract → Target profile: provides profile
- Target lowering → Target profile: uses profile
- Target lowering → Legality checks: checks output
- Backend contract → Target lowering: lowers circuit
- Backend contract → Executable artifact: prepares
- Backend contract → Simulator backend: executes
- Executable artifact → Qiskit Aer adapter: runs artifact
- Executable artifact → CUDA-Q adapter: runs artifact
- Browser user → Pipeline visualizer: views pipeline
- Pipeline visualizer → WebSocket client: connects to
- WebSocket client → Visualization server: opens socket
- Visualization server → File watch: starts watch
- File watch → Server compilation: signals changes
- Server compilation → Compiler orchestration: calls compiler
- Server compilation → WebSocket client: streams reports
- WebSocket client → Pipeline state: delivers events
- Pipeline state → Pipeline visualizer: supplies state