Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

dqcsim

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dqcsim

Python bindings for DQCsim

  • 0.4.1
  • PyPI
  • Socket score

Maintainers
1

DQCsim

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!

Install

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

Users

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:

Plugins

Frontend

PluginDescriptionDownloadLicensePlatformsLanguage
openqasmOpenQASM 2.0 frontendCrates.ioApache-2.0Linux, macOSRust
cqasmcQASM 1.0 frontendPyPiApache-2.0Linux, macOSC++
nullNo-op frontendPyPiApache-2.0Linux, macOSRust

Operator

PluginDescriptionDownloadLicensePlatformsLanguage
openql-mapperOpenQL mapper operatorPyPiApache-2.0LinuxC++
nullNo-op operatorPyPiApache-2.0Linux, macOSRust

Backend

PluginDescriptionDownloadLicensePlatformsLanguage
quantumsimQuantumsim backendPyPiGPL-3.0Linux, macOSPython
qxQX backendPyPiApache-2.0Linux, macOSC++
nullNo-op backendPyPiApache-2.0Linux, macOSRust
iqsIntel QS backendGitHubApache-2.0Linux, macOSC++

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

Build and test from source

Setup

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.

Requirements

Python support:

C/C++ tests:

Documentation:

Python

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.

C/C++

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.

Rust

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.

Documentation

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.

Test

Rust

To test all targets and features:

cargo test --all-targets --all-features
C/C++

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

mkdir build
cd build
cmake .. -DBUILD_TESTS=ON
make
CTEST_OUTPUT_ON_FAILURE=1 make test

Add -DCMAKE_BUILD_TYPE=DEBUG to CMake for debug builds.

Python

To test the Python package:

python3 setup.py build test

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc