Fork me on GitHub


RevKit is an open source C++ logic synthesis framework for reversibe logic. Many synthesis and optimization algorithms for reversible logic have been implemented or re-implemented in RevKit. Being part of CirKit it now has a command line interface similar to SIS or ABC. The main underlying logic data structures are reversible circuits, truth tables, and RCBDDs.

Download RevKit

The newest RevKit version is availabe as an addon for CirKit and can be downloaded from

Previous versions of RevKit can be downloaded from The older versions also contain a Python interface and a graphical user interface. These features are no longer maintained and are replaced by the command line interface.

Install RevKit

git clone --recursive
cd cirkit
mkdir build
cd build
cmake -Denable_cirkit-addon-reversible=ON -Denable_cirkit-addon-formal=ON ..
make external
make revkit
cd ..

Run RevKit

After a successful compilation, run
from the main directory. The core concepts of the CirKit CLI also apply to RevKit. Some example scripts for RevKit can be found here. The script can also be run with
./build/programs/revkit -ef addons/cirkit-addon-reversible/demo.cs
from the main directory.


Information on how to use CirKit can be found here.


  • Linux or Mac
  • git
  • cmake (at least version 3.0.0)
  • g++ (at least version 4.9.0) or clang++ (at least version 3.5.0)
  • boost (at least version 1.56.0)
  • GNU MP, and its C++ interface GMP++
  • GNU readline (optional)