Skip to main content

Tests Coverage Documentation PyPI Forum License Dev Container

Catalyst is an experimental package that enables just-in-time (JIT) compilation of hybrid quantum-classical programs.

Catalyst is currently under heavy development — if you have suggestions on the API or use-cases you'd like to be covered, please open an GitHub issue or reach out. We'd love to hear about how you're using the library, collaborate on development, or integrate additional devices and frontends.

Key Features

  • Compile the entire quantum-classical workflow, including any optimization loops.

  • Use Catalyst alongside PennyLane directly from Python. Simply decorate quantum code and hybrid functions with @qjit, leading to significant performance improvements over standard Python execution.

  • Access advanced control flow that supports both quantum and classical instructions.

  • Infrastructure for both quantum and classical compilation, allowing you to compile quantum circuits that contain control flow.

  • Built to be end-to-end differentiable.

  • Support for PennyLane-Lightning high performance simulators, and Amazon Braket devices. Additional hardware support, including QPUs, to come.

Overview

Catalyst currently consists of the following components:

  • Catalyst Compiler.

    The core Catalyst compiler is built using MLIR, with the addition of a quantum dialect used to represent quantum instructions. This allows for a high-level intermediate representation of the classical and quantum components of the program, resulting in advantages during optimization. Once optimized, the compiler lowers the representation down to LLVM + QIR, and a machine binary is produced.

  • Catalyst Runtime.

    The runtime is a C++ runtime with multiple-device support based on QIR that enables the execution of Catalyst-compiled quantum programs. A complete list of all backend devices along with the quantum instruction set supported by these runtime implementations can be found by visiting the runtime documentation.

In addition, we also provide a Python frontend for PennyLane and JAX:

  • PennyLane JAX frontend.

    A Python library that provides a @qjit decorator to just-in-time compile PennyLane hybrid quantum-classical programs. In addition, the frontend package provides Python functions for defining Catalyst-compatible control flow structures, gradient, and mid-circuit measurement.

Installation

Catalyst is officially supported on Linux (aarch64/arm64, x86_64) and macOS (aarch64/arm64, x86_64) platforms, and pre-built binaries are being distributed via the Python Package Index (PyPI) for Python versions 3.9 and higher. To install it, simply run the following pip command:

pip install pennylane-catalyst

Pre-built packages for Windows are not yet available, and comptability with Windows is untested and cannot be guaranteed. If you are using one of these platforms, please try out our Docker and Dev Container images described in the documentation or click this button:

Dev Container.

If you wish to contribute to Catalyst or develop against our runtime or compiler, instructions for building from source are also available.

Trying Catalyst with PennyLane

To get started using the Catalyst JIT compiler from Python, check out our quick start guide, as well as our various examples and tutorials in our documentation.

For an introduction to quantum computing and quantum machine learning, you can also visit the PennyLane website for tutorials, videos, and demonstrations.

Roadmap

  • Frontend: As we continue to build out Catalyst, the PennyLane frontend will likely be upstreamed into PennyLane proper, providing native JIT functionality built-in to PennyLane. The Catalyst compiler and runtime will remain part of the Catalyst project. If you are interested in working on additional frontends for Catalyst, please get in touch.

  • Compiler: We will continue to build out the compiler stack, and add quantum compilation routines. This includes an API for providing or writing Catalyst-compatible compilation routines. In addition, we will be improving the autodifferentiation support, and adding support for classical autodiff, additional quantum gradients, and quantum-aware optimization methods.

  • Runtime: We will be adding support for more devices, including quantum hardware devices. In addition, we will be building out support for hetereogeneous execution. If you are interested in working on connecting a quantum device with Catalyst, please get in touch.

To get the details right, we need your help — please send us your use cases by starting a conversation, or trying Catalyst out.

Contributing to Catalyst

We welcome contributions — simply fork the Catalyst repository, and then make a pull request containing your contribution.

We also encourage bug reports, suggestions for new features and enhancements.

Support

If you are having issues, please let us know by posting the issue on our GitHub issue tracker.

We also have a PennyLane discussion forum—come join the community and chat with the PennyLane team.

Note that we are committed to providing a friendly, safe, and welcoming environment for all. Please read and respect the Code of Conduct.

Authors

Catalyst is the work of many contributors.

If you are doing research using Catalyst, please cite our GitHub repo.

License

Catalyst is free and open source, released under the Apache License, Version 2.0.

Metadata

Release files for pennylane-catalyst 0.7.0

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

Built distributions (wheels)

Table of built distributions (wheels) for pennylane-catalyst 0.7.0
File
PennyLane_Catalyst-0.7.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
PennyLane_Catalyst-0.7.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
PennyLane_Catalyst-0.7.0-cp312-cp312-macosx_13_0_arm64.whl CPython 3.12 CPython 3.12 macOS 13.0+ ARM64 Details
PennyLane_Catalyst-0.7.0-cp312-cp312-macosx_12_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 12.0+ x86-64 Details
PennyLane_Catalyst-0.7.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
PennyLane_Catalyst-0.7.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
PennyLane_Catalyst-0.7.0-cp311-cp311-macosx_13_0_arm64.whl CPython 3.11 CPython 3.11 macOS 13.0+ ARM64 Details
PennyLane_Catalyst-0.7.0-cp311-cp311-macosx_12_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 12.0+ x86-64 Details
PennyLane_Catalyst-0.7.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
PennyLane_Catalyst-0.7.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
PennyLane_Catalyst-0.7.0-cp310-cp310-macosx_13_0_arm64.whl CPython 3.10 CPython 3.10 macOS 13.0+ ARM64 Details
PennyLane_Catalyst-0.7.0-cp310-cp310-macosx_12_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 12.0+ x86-64 Details
PennyLane_Catalyst-0.7.0-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
PennyLane_Catalyst-0.7.0-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details
PennyLane_Catalyst-0.7.0-cp39-cp39-macosx_13_0_arm64.whl CPython 3.9 CPython 3.9 macOS 13.0+ ARM64 Details
PennyLane_Catalyst-0.7.0-cp39-cp39-macosx_12_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 12.0+ x86-64 Details

Total release size: 951.7 MB

Release files / PennyLane_Catalyst-0.7.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL PennyLane_Catalyst-0.7.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 65.2 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5e4d0b901e34a42306c8b843c98d4ca0b5d5ec1bffecf808a3ed5bbd7c8b7236
BLAKE2b-256 checksum
How to use checksums
80cd4be945d68244aa1352716fcd89e6a70a86800a49e001b5818988b87e16cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL PennyLane_Catalyst-0.7.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 61.5 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9002b9db2e6cf5246049b594417942b7667e1e4c0f2d4aa82a28285aa4be5564
BLAKE2b-256 checksum
How to use checksums
86256326a17d026b3ade564d62047ee2a10add2061c5ca6030fbdb9e99c5b9ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp312-cp312-macosx_13_0_arm64.whl

Download URL PennyLane_Catalyst-0.7.0-cp312-cp312-macosx_13_0_arm64.whl
Size 52.4 MB
Tags CPython 3.12 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
c6aded2aac52c6782a5b31e04af9c5e8b43816a7d71848eea063eeb21a03c29c
BLAKE2b-256 checksum
How to use checksums
256311e4ba5d23d5f221e2133ac57ead770dade2606bec66588ae0c30742d35c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp312-cp312-macosx_12_0_x86_64.whl

Download URL PennyLane_Catalyst-0.7.0-cp312-cp312-macosx_12_0_x86_64.whl
Size 58.8 MB
Tags CPython 3.12 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
38d38c8e1eacbeadb2f2f5a2767869ebfda4e31f39132883247d3e4e98c70224
BLAKE2b-256 checksum
How to use checksums
84a0e185a0131afb63cfa0a0400b6b772129981d3ce160c83eda4ffb5d3b66bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL PennyLane_Catalyst-0.7.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 65.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dbb7a4ada6583b3a569e4920bbfc02f1aafe1fd5f9e3cb5035f27346315fce83
BLAKE2b-256 checksum
How to use checksums
140c9a33991ad24c872e33fb5a48bb383b448b91bb59c5dc609cf210f6b1d79d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL PennyLane_Catalyst-0.7.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 61.5 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f38bbd0b538b2f0592f997290b7b60428b419fd0631ce656db7655cac9cc38a6
BLAKE2b-256 checksum
How to use checksums
00ed1d7dc40605981e5d51a371a522b467e3bdf2cfc47c463a6de0bf9c315a1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp311-cp311-macosx_13_0_arm64.whl

Download URL PennyLane_Catalyst-0.7.0-cp311-cp311-macosx_13_0_arm64.whl
Size 52.4 MB
Tags CPython 3.11 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
2a23f1a5be2605632f20e133aee7f97d0bca39467dd09f25633c3d613cb43f90
BLAKE2b-256 checksum
How to use checksums
841e0655d5fc55146423630087f6bb2189d1c8873bcec2a405f3afeb1278f882
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp311-cp311-macosx_12_0_x86_64.whl

Download URL PennyLane_Catalyst-0.7.0-cp311-cp311-macosx_12_0_x86_64.whl
Size 58.9 MB
Tags CPython 3.11 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
c647a24ebe51831d91d87cc07210a5fc80e5dd19c9be19101d9b5696d47b476a
BLAKE2b-256 checksum
How to use checksums
63215c870056dae32903a2cfd4cc5dcca82afb56108f623397062db529f4068b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL PennyLane_Catalyst-0.7.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 65.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1056a7e4d086f83da382e00f8bd9181dd4235f6a49935fed5a2ebe7d458398c6
BLAKE2b-256 checksum
How to use checksums
b8b25ab9d912b5ca66f3f9a272de87e2ccf22447f4a165599ca2f332424d5625
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL PennyLane_Catalyst-0.7.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 61.5 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
dd5aedbc83d383f761979941cdb418a132dc7464f388764ce5ef9e52bc5d793d
BLAKE2b-256 checksum
How to use checksums
c662ad2b974ee0711e8195a2824711b4409f449a798c7e49d9047643acfb756b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp310-cp310-macosx_13_0_arm64.whl

Download URL PennyLane_Catalyst-0.7.0-cp310-cp310-macosx_13_0_arm64.whl
Size 52.4 MB
Tags CPython 3.10 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
1779ea65c7bcce7ead3473dbb11eadb1fe29bff52368d0530ddb30cf09350f46
BLAKE2b-256 checksum
How to use checksums
5dfd997adf2303e596cceb6dc1ebbee0c3b05411fd77aa4af7422dd7127f321e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp310-cp310-macosx_12_0_x86_64.whl

Download URL PennyLane_Catalyst-0.7.0-cp310-cp310-macosx_12_0_x86_64.whl
Size 58.8 MB
Tags CPython 3.10 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
160b73aac1ede5fde74539a7896f13cade2f3bbb9353469d4d8f8095912eca01
BLAKE2b-256 checksum
How to use checksums
1154bde845a87639307bad6882963333d41802c5fd17c2e423e80ce8c0d832c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL PennyLane_Catalyst-0.7.0-cp39-cp39-manylinux_2_28_x86_64.whl
Size 65.2 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c58382d40fbcfdafb5895a7989dd6a1d08ba24658ccc0db2f44d41c7bcc18b24
BLAKE2b-256 checksum
How to use checksums
3454fc78d95d025d874581803015fa34e7fb6192f2b3db2efc5bf372a1bb96eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp39-cp39-manylinux_2_28_aarch64.whl

Download URL PennyLane_Catalyst-0.7.0-cp39-cp39-manylinux_2_28_aarch64.whl
Size 61.5 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1161e2466b89e7334e4b3a58944d599c4a724ea9d64a0e58f7ed9b5bf9550dc0
BLAKE2b-256 checksum
How to use checksums
a31c80bdec75a19761e152f2563cb68b65a883054fd9e5c226004400cfef6820
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp39-cp39-macosx_13_0_arm64.whl

Download URL PennyLane_Catalyst-0.7.0-cp39-cp39-macosx_13_0_arm64.whl
Size 52.4 MB
Tags CPython 3.9 macOS 13.0+ ARM64
SHA-256 checksum
How to use checksums
a3c667579eaeacc1e5128d2f7ac8e0e7faa09ee7cc6f38dd1bd75c53ad4f0ca8
BLAKE2b-256 checksum
How to use checksums
eebd93e546a4ffe4eb2203d8a9c521bf106cd9349578fd2a0b0aea2941397f6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12

Release files / PennyLane_Catalyst-0.7.0-cp39-cp39-macosx_12_0_x86_64.whl

Download URL PennyLane_Catalyst-0.7.0-cp39-cp39-macosx_12_0_x86_64.whl
Size 58.8 MB
Tags CPython 3.9 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
6743f098777d6ae9aa77f4725d8c2f1e180df5275536af82aacec9fea1a3f211
BLAKE2b-256 checksum
How to use checksums
74b0fc7c3c992dbe7485e3287c010018b89dbd98485936374b4050be4b4a04b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12
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