###############
Qiskit Fermions
###############
``qiskit-fermions`` extends the Qiskit SDK with tools for working on fermionic
systems. Within its scope it provides the following:
- Efficient data structures for the representation and manipulation of fermionic
operators in different forms
- A framework for implementing operator conversion methods (including
fermion-to-qubit encodings)
- A library of efficient implementations of common conversion methods
- A framework and library of gates for expressing fermionic circuits
- A transpilation pipeline integrated with the Qiskit transpiler process to
synthesize fermionic circuits into qubit-based circuits
Additionally, ``qiskit-fermions`` integrates with other tools of the ecosystem,
such as:
- `ffsim `_ for efficient simulation
of fermionic circuits
Get started
-----------
Several guides exist to help you get started with this package. For an overview of its breadth of features, visit the
:doc:`1D Fermi-Hubbard guide `.
Use case examples
-----------------
Components of this package have been used in research related to the following
papers:
- The qDRIFT randomized circuit compilation in [1]_.
- The fermion-to-qubit synthesis during the transpilation process in [2]_.
Technical discussion
--------------------
Design intentions
"""""""""""""""""
This package is deliberately designed to align with Qiskit: it builds on a core
implemented in Rust and provides first-party language bindings to Python and C.
Its API intends to draw parallels to Qiskit in order to seamlessly integrate
into the workflows of users with experience in programming Qiskit.
A core principle to the design of ``qiskit-fermions`` was the decoupling of its
fermionic circuit representation from its qubitized form. To be more precise:
the fermionic circuits are meaningful by themselves and do not require a mapping
to qubit space to be interpretable.
Furthermore, the fermionic circuit representation cannot make any assumptions
about its fermion-to-qubit encoding applied later on. Consequently, while
Jordan-Wigner retains a dominant position and role, it is not assumed to be the
_default_ fermion-to-qubit encoding.
Known issues
""""""""""""
As long as the Qiskit C API has not yet reached feature parity with its Python
API, some components of this package remain exclusive to its Python API, too.
This includes the entire circuit library (:mod:`qiskit_fermions.circuit`) as
well as transpiler passes (:mod:`qiskit_fermions.transpiler`).
Future work
"""""""""""
- Migrate the circuit library and transpiler passes into the Rust core (and
provide a C API for interacting with them)
- Extend the library of efficient operator conversion implementations
- Extend the library of efficient operator data structures
Contributing
------------
The source code is available `on GitHub
`_.
The developer guide is located at `CONTRIBUTING.md
`_
in the root of this project's repository.
By participating, you are expected to uphold Qiskit's `code of conduct
`_.
Citing this package
-------------------
If you use this package in your research, use the `CITATION.bib
`_ file in
this project's repository to cite the appropriate reference(s).
License
-------
`Apache License 2.0 `_
Deprecation policy
------------------
This package follows `semantic versioning `_. Breaking changes
are made only occasionally, to improve the user experience. When possible, old
interfaces are kept and marked as deprecated for as long as they can co-exist
with the new ones. Each substantial improvement, breaking change, or deprecation
is documented in the `release notes
`_.
References
----------
.. [1] Samuele Piccinelli, et al., `Quantum chemistry with provable convergence
via randomized sample-based Krylov quantum diagonalization
`_, arXiv:2508.02578 [quant-ph].
.. [2] Anthony Gandon, et al., `Stabilizer-based quantum simulation of fermion
dynamics with local qubit encodings `_,
arXiv:2512.11418 [quant-ph].
.. toctree::
:hidden:
Documentation Home
Installation Instructions
Guides
GitHub
.. toctree::
:hidden:
:caption: Tutorials
..
_Link to any tutorials from the IQP that relate to qiskit-fermions here!
.. toctree::
:hidden:
:caption: API reference
Python API reference
C API reference
Release notes