Probabilistic Data Structures and Algorithms in Python
Switch branches/tags
Nothing to show
Clone or download


PDSA: Probabilistic Data Structures and Algorithms in Python

Travis Build Status Current Release Version pypi Version Documentation Version Python versions


Probabilistic data structures is a common name of data structures based on different hashing techniques.

Unlike regular (or deterministic) data structures, they always provide approximated answers, but usually with reliable ways to estimate the error probability.

The potential losses or errors are fully compensated by extremely low memory requirements, constant query time and scaling.

GitHub repository:



The latest documentation can be found at

Membership problem

Cardinality problem

Rank problem


MIT License

Source code


  • Maintainer: Andrii Gakhov <>

Install with pip

Installation requires a working build environment.

Using pip, PDSA releases are currently only available as source packages.

$ pip3 install -U pdsa

When using pip it is generally recommended to install packages in a virtualenv to avoid modifying system state:

$ virtualenv .env -p python3 --no-site-packages
$ source .env/bin/activate
$ pip3 install -U cython
$ pip3 install -U pdsa

Compile from source

The other way to install PDSA is to clone its GitHub repository and build it from source.

$ git clone
$ cd pdsa

$ make build

$ bin/pip3 install -r requirements-dev.txt
$ make tests