6 releases

0.3.2 Feb 21, 2026
0.3.1 Feb 11, 2026
0.3.0 Nov 26, 2025
0.2.1 Sep 30, 2025
0.1.0 Jul 9, 2025

#2939 in Algorithms

Download history 58/week @ 2026-01-03 195/week @ 2026-01-10 64/week @ 2026-01-17 4/week @ 2026-01-31 29/week @ 2026-02-07 27/week @ 2026-03-07 16/week @ 2026-03-14 53/week @ 2026-03-21 116/week @ 2026-03-28 33/week @ 2026-04-04 10/week @ 2026-04-11

212 downloads per month
Used in pindakaas

MIT license

2MB
48K SLoC

C++ 46K SLoC // 0.1% comments C 2K SLoC // 0.0% comments Rust 282 SLoC // 0.0% comments

This crate provides low-level bindings to the CaDiCaL SAT solver aimed at the Pindakaas library.


pindakaas logo

A library to transform pseudo-Boolean and integer constraints into conjunctive normal form.

Supported Constraints

  • At most one (AMO)
    • Bitwise encoding
    • Ladder encoding
    • Pairwise encoding
  • Cardinality constraints
    • Sorting Network encoding
  • Boolean linear
    • Adder encoding
    • BDD encoding
    • Sequential Weight Counter encoding
    • Totalizer encoding
  • Integer (linear)
    • Direct / Domain / Unary encoding
    • Order encoding
    • Binary encoding

Installation and usage

Although the main Pindakaas library is written in rust, it is also available from Python.

Rust

cargo add pindakaas

For more information about the Rust library, please visit the official documentation.

Python

pip install pindakaas

For more information about the Python library, please visit the official documentation.

Citation

If you want to cite Pindakaas please use our general software citation, in addition to any citation to a specific version or paper:

@software{Pindakaas,
author = {Bierlee, Hendrik and Dekker, Jip J.},
license = {MPL-2.0},
title = {{Pindakaas}},
url = {https://doi.org/10.5281/zenodo.10851855},
doi = {10.5281/zenodo.10851855},
}

Note that you might have to use misc instead of software, if your system does not support software as a type.

Acknowledgements

This research was partially funded by the Australian Government through the Australian Research Council Industrial Transformation Training Centre in Optimisation Technologies, Integrated Methodologies, and Applications (OPTIMA), Project ID IC200100009

License

This library is made available under the MPL-2.0 license.

Dependencies