.. title:: Overview

ProjectQ
========

ProjectQ is an open-source software framework for quantum computing. It aims at providing tools which facilitate **inventing**, **implementing**, **testing**, **debugging**, and **running** quantum algorithms using either classical hardware or actual quantum devices.

The **four core principles** of this open-source effort are

#. **Open & Free**: *ProjectQ is released under the* **Apache 2** *license*
#. **Simple learning curve**: *It is implemented in Python and has an intuitive syntax*
#. **Easily extensible**: *Anyone can contribute to the compiler, the embedded domain-specific language, and libraries*
#. **Code quality**: *Code reviews, continuous integration testing (unit and functional tests)*


Please cite
    * Damian S. Steiger, Thomas Häner, and Matthias Troyer "ProjectQ: An Open Source Software Framework for Quantum Computing" `Quantum 2, 49 (2018) <https://doi.org/10.22331/q-2018-01-31-49>`__ (published on `arXiv <https://arxiv.org/abs/1612.08091>`__ on 23 Dec 2016)
    * Thomas Häner, Damian S. Steiger, Krysta M. Svore, and Matthias Troyer "A Software Methodology for Compiling Quantum Programs" `Quantum Sci. Technol. 3 (2018) 020501 <https://doi.org/10.1088/2058-9565/aaa5cc>`__ (published on `arXiv <http://arxiv.org/abs/1604.01401>`__ on 5 Apr 2016)


Contents
    * :ref:`tutorial`: Tutorial containing instructions on how to get started with ProjectQ.
    * :ref:`examples`: Example implementations of few quantum algorithms
    * :ref:`code_doc`: The code documentation of ProjectQ.


.. toctree::
    :maxdepth: 2
    :hidden:

    tutorials
    examples
    projectq
