#quantum #framework

archived bin+lib dqcsim

DQCsim: Delft Quantum Classical Simulator

24 releases

0.4.1 Nov 26, 2020
0.3.0 Nov 23, 2020
0.2.4 Jul 2, 2020
0.2.1 Mar 12, 2020
0.0.4 Jul 5, 2019

#181 in Simulation

Download history 6/week @ 2023-06-11 42/week @ 2023-06-18 33/week @ 2023-06-25 46/week @ 2023-07-02 6/week @ 2023-07-09 9/week @ 2023-07-16 10/week @ 2023-07-23 5/week @ 2023-07-30 9/week @ 2023-08-06 34/week @ 2023-08-13 111/week @ 2023-08-20 81/week @ 2023-08-27 58/week @ 2023-09-03 14/week @ 2023-09-10 7/week @ 2023-09-17 7/week @ 2023-09-24

89 downloads per month
Used in dqcsim-openqasm


15K SLoC


PyPi Crates.io Rust workflow Python workflow C++ workflow Documentation workflow Codecov.io

DQCsim, short for Delft Quantum & Classical simulator, is a framework that can be used to tie components of quantum computer simulators together in a standardized yet flexible, developer-friendly, and reproducible way. Click here for more information!


The recommended method to install DQCsim is through Python's package manager:

sudo pip3 install dqcsim

This installs DQCsim's core files and plugins. More information is available in the Installation section of the documentation.

Getting started


New users are encouraged to check out the documentation.

Plugin developers

Plugin developers can check out the examples, existing plugins and refer to the API documentation:



Plugin Description Download License Platforms Language
openqasm OpenQASM 2.0 frontend Crates.io Apache-2.0 Linux, macOS Rust
cqasm cQASM 1.0 frontend PyPi Apache-2.0 Linux, macOS C++
null No-op frontend PyPi Apache-2.0 Linux, macOS Rust


Plugin Description Download License Platforms Language
openql-mapper OpenQL mapper operator PyPi Apache-2.0 Linux C++
null No-op operator PyPi Apache-2.0 Linux, macOS Rust


Plugin Description Download License Platforms Language
quantumsim Quantumsim backend PyPi GPL-3.0 Linux, macOS Python
qx QX backend PyPi Apache-2.0 Linux, macOS C++
null No-op backend PyPi Apache-2.0 Linux, macOS Rust
iqs Intel QS backend GitHub Apache-2.0 Linux, macOS C++

Please open a PR to have your plugin added to this list.

Build and test from source


The core of DQCsim is written in Rust. The crate defines a set of C-bindings to support plugin development in other languages. DQCsim is distributed as a batteries included Python package that includes the shared library and headers for C and C++ plugin development.


Python support:

C/C++ tests:



To build the dqcsim Python package:

python3 setup.py bdist_wheel

This builds a release wheel to target/python/dist/. For debug builds set the DQCSIM_DEBUG environment variable.


To build the C and C++ headers build the dqcsim Rust crate with the bindings feature enabled:

cargo build --manifest-path=rust/Cargo.toml --features=bindings

The generated headers are stored in target/include.


The dqcsim crate can be built with the following (non-default) features:

  • cli: the command-line interface binary
  • null-plugins: the null (no-op) plugin binaries
  • bindings: genertion of headers required for C, C++ and Python plugin development

To build all targets and features:

cargo build --all-targets --all-features

Add --release for release builds.


To build the documentation use the Makefile in the doc directory directly from the root of the repository:

make -C doc

Documentation output is stored in target/book.



To test all targets and features:

cargo test --all-targets --all-features


To test the C-bindings and C++ wrapper:

mkdir build
cd build

Add -DCMAKE_BUILD_TYPE=DEBUG to CMake for debug builds.


To test the Python package:

python3 setup.py build test


~284K SLoC