Expand description
§ruqu-wasm - WebAssembly Quantum Simulation
Browser-compatible quantum circuit simulation. Supports up to 25 qubits in WASM (memory limit enforcement).
This crate provides wasm-bindgen bindings over ruqu-core and ruqu-algorithms,
exposing a JavaScript-friendly API for building quantum circuits, running simulations,
and executing quantum algorithms (Grover’s search, QAOA MaxCut) directly in the browser.
§Usage (JavaScript)
import { WasmQuantumCircuit, simulate, max_qubits, estimate_memory } from 'ruqu-wasm';
// Check limits
console.log(`Max qubits: ${max_qubits()}`);
console.log(`Memory for 10 qubits: ${estimate_memory(10)} bytes`);
// Build a Bell state circuit
const circuit = new WasmQuantumCircuit(2);
circuit.h(0);
circuit.cnot(0, 1);
circuit.measure_all();
// Simulate
const result = simulate(circuit);
console.log(result.probabilities);§Memory Limits
WASM operates under 32-bit address space constraints (~4GB max).
A quantum state vector for n qubits requires 2^n * 16 bytes
(complex f64 amplitudes). At 25 qubits this is ~512MB, which is
a practical upper bound for browser environments.
Structs§
- Wasm
Measurement - A single qubit measurement outcome.
- Wasm
Quantum Circuit - A JavaScript-friendly quantum circuit builder.
- Wasm
SimResult - Simulation result returned as a plain JS object.
Functions§
- estimate_
memory - Estimate memory usage (in bytes) for a state vector of
num_qubitsqubits. - grover_
search - Run Grover’s quantum search algorithm.
- init
- Called automatically when the WASM module is instantiated.
- max_
qubits - Get the maximum number of qubits supported in the WASM environment.
- qaoa_
maxcut - Build and simulate a QAOA (Quantum Approximate Optimization Algorithm) circuit for the MaxCut problem on an undirected graph.
- simulate
- Run a quantum circuit simulation and return the results as a JS object.