Skip to main content


License PyPI - Version Discord Pytest Downloads CodeFactor

Paper Forks Open Issues Stars Contributors

About

Qrisp is a high-level quantum programming framework that allows for intuitive development of quantum algorithms. It provides a rich set of tools and abstractions to make quantum computing more accessible to developers and researchers. By automating many steps one usually encounters when programming a quantum computer, introducing quantum types, and many more features Qrisp makes quantum programming more user-friendly yet stays performant when it comes to compiling programs to the circuit level.

Features

  • Intuitive quantum program design
  • High-level quantum programming
  • Efficient quantum algorithm implementation
  • Extensive documentation and examples

Installation

You can install Qrisp using pip:

pip install qrisp

Qrisp requires Python 3.11 or later, up to and including Python 3.13 (>=3.11, <3.14).

Qrisp is compatible with any QASM-capable quantum backend! In particular, it offers convenient interfaces for using IBM, IQM and AQT quantum computers, and any quantum backend provider is invited to reach out for a tight integration!

Additional backends require extra dependencies:

pip install qrisp[aqt]     # AQT quantum hardware
pip install qrisp[iqm]     # IQM quantum hardware
pip install qrisp[qiskit]  # Qiskit Aer simulator + IBM Quantum Runtime

Documentation

The full documentation, alongside with many tutorials and examples, is available under Qrisp Documentation.

Shor's Algorithm with Qrisp

Shor's algorithm is among the most famous quantum algorithm since it provides a provably exponential speed-up for a practically relevant problem: Facotrizing integers. This is an important application because much of modern cryptography is based on RSA, which heavily relies on integer factorization being insurmountable.

Despite this importance, the amount of software that is actually able to compile the algorithm to the circuit level is extremely limited. This is because a key operation within the algorithm (modular in-place multiplication) is difficult to implement and has strong requirements for the underlying compiler. These problems highlight how the Qrisp programming-model delivers significant advantages to quantum programmers because the quantum part of the algorithm can be expressend within a few lines of code:

from qrisp import QuantumFloat, QuantumModulus, h, QFT, control


def find_order(a, N):
    qg = QuantumModulus(N)
    qg[:] = 1
    qpe_res = QuantumFloat(2 * qg.size + 1, exponent=-(2 * qg.size + 1))
    h(qpe_res)
    for i in range(len(qpe_res)):
        with control(qpe_res[i]):
            qg *= a
        a = (a * a) % N
    QFT(qpe_res, inv=True)
    return qpe_res.get_measurement()

To find out how this can be used to break encryption be sure to check the tutorial.

Qrisp offers much more than just factoring! More examples, like simulating molecules at the quantum level or how to solve the Travelling Salesman Problem, can be found here.

Feedback and Contact

If you have comments, questions or love letters, here is how you can engange with the Qrisp Community and Developers:

  • Join the Discussions on Discord.
  • Join the bi-weekly Developer Call.
  • Ask a question, request a new feature and file a bug with GitHub issues.
  • Vote on existing GitHub issues by reacting with a 👍. We regularly check issues with votes!
  • Star the repository to show your support.

Authors and Citation

Qrisp is the work of many people.

If you want to cite Qrisp in your work, please use:

@misc{seidel2024qrisp,
      title={Qrisp: A Framework for Compilable High-Level Programming of Gate-Based Quantum Computers}, 
      author={Raphael Seidel and Sebastian Bock and René Zander and Matic Petrič and Niklas Steinmann and Nikolay Tcholtchev and Manfred Hauswirth},
      year={2024},
      eprint={2406.14792},
      archivePrefix={arXiv},
      primaryClass={quant-ph},
      url={https://arxiv.org/abs/2406.14792}, 
}

License

Eclipse Public License 2.0

Metadata

Release files for qrisp 0.9.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qrisp 0.9.9
File Size Uploaded
qrisp-0.9.9.tar.gz 942.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qrisp 0.9.9
File Interpreter ABI Platform
qrisp-0.9.9-py3-none-any.whl Python 3 none any Details

Total release size: 2.2 MB

Release files / qrisp-0.9.9.tar.gz

Download URL qrisp-0.9.9.tar.gz
Size 942.4 kB
Tags Source
SHA-256 checksum
How to use checksums
83e788f8c44726473f4db009dbf7250bc1df6dcf38e32b32c60a5d2da73d5a83
BLAKE2b-256 checksum
How to use checksums
4d0b6a2a0136523354728b4f4a4a1580da0d9b9f360ceac9a50123912f05249b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.10

Release files / qrisp-0.9.9-py3-none-any.whl

Download URL qrisp-0.9.9-py3-none-any.whl
Size 1.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
efeac84bdc3132b20c768957ec9f7e7e2687f1581923c9a3c4cc34d3c0ac17fe
BLAKE2b-256 checksum
How to use checksums
587ee6186f84d83fda4671561188ca2c3d9c939630916b4db3df22447a09f4db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.10

Release history Release notifications | RSS feed

This release

0.9.9 This release

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.19

2 release files

0.7.18

2 release files

0.7.13

2 release files

0.7.12

2 release files

0.7.11

2 release files

0.7.10

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.15

2 release files

0.4.14

2 release files

0.4.13

2 release files

0.4.12

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.15

2 release files

0.0.14

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page