Skip to main content

Crate ruqu_wasm

Crate ruqu_wasm 

Source
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§

WasmMeasurement
A single qubit measurement outcome.
WasmQuantumCircuit
A JavaScript-friendly quantum circuit builder.
WasmSimResult
Simulation result returned as a plain JS object.

Functions§

estimate_memory
Estimate memory usage (in bytes) for a state vector of num_qubits qubits.
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.