Skip to main content

Simple clustering by consensus library

Project description

Konsensus

Lint Tests codecov Build Publish CodeQL Version Python

A simple clustering by consensus library in Python. This is a simple implementation of a replicated state machine using a Paxos-derived algorithm.

Getting Started

Ensure you have the following first before you proceed:

  1. Python 3.10+

    You will require Python 3.10+ to run this project. If you are using a different version of Python, you will need to update your Python version to 3.10+. You can check your Python version by running python --version in your terminal. There are ways to install different versions of Python on your system and this can be done using pyenv.

  2. Poetry

    Poetry is a Python package manager that is used to manage dependencies. You can check the installation instructions in the link provided to get this setup.

  3. Virtualenv

    Not a hard requirement as poetry should setup a virtual environment for you, but can be used as well to setup a virtual environment.

Once you have dependencies setup, run the below command to install dependencies:

poetry install

Even though this implementation has 0 dependencies to external packages, the dev packages are used for linting & handling tests. Therefore, this is useful when running linting & test commands.

The library itself is in the konsensus directory.

Running

There is a simple script in the project root run.py that contains a sample setup on how to use the library. It can be run with:

python run.py 10

10 is the seed value, this can be any other value like 20 or 30, etc

There are other scripts available in the Makefile that can be used to run formatting, linting, test or build commands.

Built With

Tool Purpose
Python Programming Language
Poetry Dependency & Package manager

Contributing

Please read the contributing guide to learn how to contribute to this project.

Versioning

Semantic versioning is used to track the version of the project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

konsensus-0.1.4.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

konsensus-0.1.4-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file konsensus-0.1.4.tar.gz.

File metadata

  • Download URL: konsensus-0.1.4.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for konsensus-0.1.4.tar.gz
Algorithm Hash digest
SHA256 b0e7b4c2475d5dbe4007c85d7f383d7d00cdb9cb0a77cd68aa17277df01c39b0
MD5 3a02104f325501a51fb69941eb912f27
BLAKE2b-256 311f96cb583501d287159484aa4a96f294617952bdce9637706751b952602fcf

See more details on using hashes here.

File details

Details for the file konsensus-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: konsensus-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for konsensus-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 28399e0515ab8fb8f6ff41a5fd7249b99878678df0912db49a376a9486e776ad
MD5 6c29207fb8014687a081434857143720
BLAKE2b-256 a018976487f3ef85d4c91c2014d1baf1f1436818ce8bfb3d83336dfed455f0f0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page