Simple clustering by consensus library
Project description
Konsensus
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:
-
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. -
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.
-
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0e7b4c2475d5dbe4007c85d7f383d7d00cdb9cb0a77cd68aa17277df01c39b0 |
|
MD5 | 3a02104f325501a51fb69941eb912f27 |
|
BLAKE2b-256 | 311f96cb583501d287159484aa4a96f294617952bdce9637706751b952602fcf |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28399e0515ab8fb8f6ff41a5fd7249b99878678df0912db49a376a9486e776ad |
|
MD5 | 6c29207fb8014687a081434857143720 |
|
BLAKE2b-256 | a018976487f3ef85d4c91c2014d1baf1f1436818ce8bfb3d83336dfed455f0f0 |