Skip to content

Cloud and interoperability

xacc

Maintained by ORNL-QCI

XACC - eXtreme-scale Accelerator programming framework

C++BSD-3-Clause
xacc illustration

Resource snapshot

Category

Cloud and interoperability

Stars

3

Last pushed

Jan 17, 2025Updated 1y ago

Open issues

6

What it is

xacc is maintained by ORNL-QCI and sits in the Cloud and interoperability lane of the open-source quantum map.

XACC - eXtreme-scale Accelerator programming framework It commonly appears alongside qiskit-qiskit, quantumlib-cirq, dwavesystems-dwave-ocean-sdk in example workflows.

Last verified by Qtangl generator on May 27, 2026

Who it's for

Teams that need to connect multiple providers, runtimes, or software ecosystems instead of staying in one stack.

What you can build or learn

  • See how the project smooths over provider or runtime boundaries.
  • Understand tradeoffs between portability and provider-specific features.
  • Compare where interoperability helps versus where it adds abstraction.

License

BSD-3-Clause

SPDX identifier detected from the repository metadata or license files.

Repository README

Preview from the project README.

Rendered as Markdown inside a scrollable preview. Long READMEs stay contained; expand or open on GitHub for the full document.

~720 words · about 3 min readOpen on GitHub

XACC

BranchStatus
masterLinux CI Mac CI

Language and Hardware Independent Quantum Programming Framework

XACC is an extensible compilation framework for hybrid quantum-classical computing architectures. It provides extensible language frontend and hardware backend compilation components glued together via a novel quantum intermediate representation. XACC currently supports quantum-classical programming and enables the execution of quantum kernels on IBM, Rigetti, and D-Wave QPUs, as well as a number of quantum computer simulators.

Documentation

Quick Start

to open up a pre-configured Eclipse Theia IDE. You should immediately be able to run any of the C++ or Python examples from the included terminal:

[example C++ executables are in build/quantum/examples/*]
$ build/quantum/examples/qasm/deuteron_from_qasm

[example Python scripts are in python/examples/*]
$ python3 python/examples/deuteronH2.py

[run some XACC benchmarks]
$ python3 -m xacc --benchmark python/benchmark/chemistry/benchmarks/nah_ucc1.ini 

All code is here and you can quickly start developing. We recommend turning on file auto-save by clicking File > Auto Save . Note the Gitpod free account provides 100 hours of use for the month, so if you foresee needing more time, we recommend our nightly docker images.

The XACC nightly docker images also serve an Eclipse Theia IDE on port 3000. To get started, run

$ docker run --security-opt seccomp=unconfined --init -it -p 3000:3000 ghcr.io/eclipse/xacc/xacc:latest

Navigate to https://localhost:3000 in your browser to open the IDE and get started with XACC.

Build from Source

Full installation details can be followed here.

Ensure that you have installed CMake 3.12+, a C++17 compliant compiler (GCC 8+, Clang 5+), and CURL development headers and libraries with OpenSSL support (see prerequisites).

It is also recommended (though optional) that you install BLAS and LAPACK development libraries (for various simulators), Python 3 development headers (for the Python API), and Libunwind (for stack trace printing).

To enable XACC Python support, ensure that python3 is set to your desired version of Python 3. CMake will find the corresponding development headers. Ensure that when you try to run XACC-enabled Python scripts you are using the same python3 executable that was set during your build.

Clone the repository recursively, configure with cmake and build with make

$ git clone https://github.com/eclipse/xacc
$ cd xacc && mkdir build && cd build
[default cmake call]
$ cmake ..
[with tests and examples]
$ cmake .. -DXACC_BUILD_EXAMPLES=TRUE -DXACC_BUILD_TESTS=TRUE
[now build xacc]
$ make install
[for a speedier build on linux]
$ make -j$(nproc --all) install
[and on mac os x]
$ make -j$(sysctl -n hw.physicalcpu) install
[if built with tests, run them]
$ ctest --output-on-failure

CMake options:

  • XACC_DEPS_EXTERNAL: [Optional, default = OFF] XACC to search externally for its third-party dependencies. When turning on, XACC will try to use find_package to locate its required dependencies before falling back to using the builtin submodules in tpls.

    Note: when turning on this flag, it is your responsibility to manage the compatibility of those tpls. For example, XACC compilation may fail if the externally-installed library version is incompatible with the builtin one.

See full documentation for all CMake optional arguments.

Your installation will be in $HOME/.xacc. If you built with the Python API, be sure to update your PYTHONPATH environment variable to point to the installation:

$ export PYTHONPATH=$PYTHONPATH:$HOME/.xacc

You will probably want the XACC default simulator, TNQVM. To install, run the following:

$ git clone https://github.com/ornl-qci/tnqvm
$ cd tnqvm && mkdir build && cd build
$ cmake .. -DXACC_DIR=~/.xacc
$ make install

Questions, Bug Reporting, and Issue Tracking

Questions, bug reporting and issue tracking are provided by GitHub. Please report all bugs by creating a new issue with the bug tag. You can ask questions by creating a new issue with the question tag.

License

XACC is dual licensed - Eclipse Public License and Eclipse Distribution License.

Cite XACC

If you use XACC in your research, please use the following citation

@article{xacc_2020,
	doi = {10.1088/2058-9565/ab6bf6},
	url = {https://doi.org/10.1088%2F2058-9565%2Fab6bf6},
	year = 2020,
	month = {feb},
	publisher = {{IOP} Publishing},
	volume = {5},
	number = {2},
	pages = {024002},
	author = {Alexander J McCaskey and Dmitry I Lyakh and Eugene F Dumitrescu and Sarah S Powers and Travis S Humble},
	title = {{XACC}: a system-level software infrastructure for heterogeneous quantum{\textendash}classical computing},
	journal = {Quantum Science and Technology}
}
Read on GitHub

Activity

Latest release

—

Watchers

2

Python support

—

Learn digest

Get monthly updates when library entries change.

Monthly digest: new library entries, updated flagships, and one editorial pick.

Related resources

Keep exploring nearby tools.

aws

amazon-braket-sdk-python

A Python SDK for interacting with quantum devices on Amazon Braket

PythonApache-2.0FlagshipQtangl relevant

367 stars · Updated 3mo ago

quantumlib

Cirq

Python framework for creating, editing, and running Noisy Intermediate-Scale Quantum (NISQ) circuits.

PythonApache-2.0Flagship

4,971 stars · Updated 3mo ago

XanaduAI

pennylane

PennyLane is an open-source quantum software platform for quantum computing, quantum machine learning, and quantum chemistry.

PythonApache-2.0FlagshipQtangl relevant

3,229 stars · Updated 3mo ago

qBraid

qBraid

A platform-agnostic quantum runtime framework

PythonApache-2.0

109 stars · Updated 3mo ago

QISKit

qiskit

Qiskit is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.

PythonApache-2.0FlagshipQtangl relevant

7,412 stars · Updated 3mo ago

Microsoft

QuantumKatas

Tutorials and programming exercises for learning Q# and quantum computing

Jupyter NotebookMITFlagshipArchive

4,862 stars · Updated 2y ago