quantsim

Crates.ioquantsim
lib.rsquantsim
version0.2.0
created_at2025-09-21 21:32:00.948568+00
updated_at2025-09-21 22:34:37.587957+00
descriptionA quantum circuit simulator ecosystem
homepage
repositoryhttps://github.com/benschneider/quantum_algorithm_simulator
max_upload_size
id1849221
size123,247
Dr. Ben (benschneider)

documentation

README

quantsim

License Crates.io Documentation

A quantum circuit simulator ecosystem providing both a core simulation library and a web-based graphical user interface.

Quick Start

Install and run the interactive simulator:

cargo install quantsim_ui
quantsim_ui

Or try the live web demo!

Architecture

This crate serves as the main entry point for the quantsim ecosystem, which consists of three components:

📦 quantsim (this crate)

  • Library that re-exports the entire quantsim ecosystem
  • Convenient entry point for accessing all functionality
  • Reserves the quantsim name on crates.io

🧠 quantsim_core

  • Core simulation engine written in pure Rust
  • Quantum gate library with built-in circuit templates
  • Performance optimized with parallel execution
  • No UI dependencies - portable and reusable

🎨 quantsim_ui

  • WebAssembly-based GUI built with egui
  • Interactive circuit builder with drag-and-drop gates
  • Real-time visualization with Bloch spheres
  • Built-in tutorials and comprehensive documentation

Installation

As a Binary Application

cargo install quantsim

This installs the interactive simulator that you can run with:

quantsim

As a Library Dependency

Add to your Cargo.toml:

[dependencies]
quantsim = "0.1.0"

Usage

Running the Interactive Simulator

cargo install quantsim
quantsim

This launches a web-based interface where you can:

  • Build quantum circuits visually
  • Run simulations with real-time results
  • Explore built-in algorithm templates
  • Learn with interactive tutorials

Using as a Library

use quantsim::core::*;

// Create and simulate a quantum circuit
let mut circuit = Circuit::new(2);
circuit.add_gate("H", &[0]).unwrap();
circuit.add_gate("CX", &[0, 1]).unwrap();

let engine = Engine::new();
let result = engine.run(&circuit, None).unwrap();

println!("Final state: {:?}", result.final_state);

WebAssembly UI (Advanced)

When targeting WASM, you can also access the UI components:

#[cfg(target_arch = "wasm32")]
use quantsim::ui;

// UI components available for custom web applications

Features

  • Visual Circuit Design: Drag-and-drop quantum gate placement
  • Real-time Simulation: Instant feedback on circuit execution
  • Educational Tools: Interactive tutorials and documentation
  • Performance: Parallel execution for large circuits
  • Extensible: Custom gates and advanced simulation options
  • Cross-platform: Runs in browsers via WebAssembly

Examples

Bell State Preparation

use quantsim::core::*;

let mut circuit = Circuit::new(2);
circuit.add_gate("H", &[0])?;      // Hadamard on qubit 0
circuit.add_gate("CX", &[0, 1])?;  // CNOT gate

let result = Engine::new().run(&circuit, None)?;
println!("Entangled state: {:?}", result.final_state);

Loading Built-in Templates

use quantsim::core::circuits;

let grover_circuit = circuits::load_template("grover")?;
let result = Engine::new().run(&grover_circuit, None)?;

Documentation

Contributing

See the main repository for contribution guidelines.

License

Licensed under either of

at your option.

Commit count: 40

cargo fmt