konsensus


Namekonsensus JSON
Version 0.1.4 PyPI version JSON
download
home_page
SummarySimple clustering by consensus library
upload_time2023-04-05 04:15:20
maintainer
docs_urlNone
authorBrianLusina
requires_python>=3.10,<4.0
licenseMIT
keywords konsensus paxos consensus
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Konsensus

[![Lint](https://github.com/BrianLusina/konsensus/actions/workflows/lint.yml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/lint.yml)
[![Tests](https://github.com/BrianLusina/konsensus/actions/workflows/tests.yaml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/tests.yaml)
[![codecov](https://codecov.io/gh/BrianLusina/konsensus/branch/main/graph/badge.svg?token=8GkDyydZdQ)](https://codecov.io/gh/BrianLusina/konsensus)
[![Build](https://github.com/BrianLusina/konsensus/actions/workflows/build.yaml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/build.yaml)
[![Publish](https://github.com/BrianLusina/konsensus/actions/workflows/publish.yaml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/publish.yaml)
[![CodeQL](https://github.com/BrianLusina/konsensus/actions/workflows/codeql.yaml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/codeql.yaml)
[![Version](https://img.shields.io/github/v/release/brianlusina/konsensus?color=%235351FB&label=version)](https://github.com/brianlusina/konsensus/releases)
[![Python](https://img.shields.io/badge/Python-3.10-blue.svg)](https://www.python.org/)

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+](https://www.python.org/)

   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](https://github.com/pyenv/pyenv).

2. [Poetry](https://python-poetry.org/)

   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](https://virtualenv.pypa.io/)

   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:

```shell
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](./konsensus) directory.

## Running

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

```shell
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](./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](./.github/CONTRIBUTING.md) to learn how to contribute to this project.

## Versioning

[Semantic versioning](https://semver/) is used to track the version of the project.


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "konsensus",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10,<4.0",
    "maintainer_email": "",
    "keywords": "konsensus,paxos,consensus",
    "author": "BrianLusina",
    "author_email": "12752833+BrianLusina@users.noreply.github.com",
    "download_url": "https://files.pythonhosted.org/packages/31/1f/96cb583501d287159484aa4a96f294617952bdce9637706751b952602fcf/konsensus-0.1.4.tar.gz",
    "platform": null,
    "description": "# Konsensus\n\n[![Lint](https://github.com/BrianLusina/konsensus/actions/workflows/lint.yml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/lint.yml)\n[![Tests](https://github.com/BrianLusina/konsensus/actions/workflows/tests.yaml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/tests.yaml)\n[![codecov](https://codecov.io/gh/BrianLusina/konsensus/branch/main/graph/badge.svg?token=8GkDyydZdQ)](https://codecov.io/gh/BrianLusina/konsensus)\n[![Build](https://github.com/BrianLusina/konsensus/actions/workflows/build.yaml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/build.yaml)\n[![Publish](https://github.com/BrianLusina/konsensus/actions/workflows/publish.yaml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/publish.yaml)\n[![CodeQL](https://github.com/BrianLusina/konsensus/actions/workflows/codeql.yaml/badge.svg)](https://github.com/BrianLusina/konsensus/actions/workflows/codeql.yaml)\n[![Version](https://img.shields.io/github/v/release/brianlusina/konsensus?color=%235351FB&label=version)](https://github.com/brianlusina/konsensus/releases)\n[![Python](https://img.shields.io/badge/Python-3.10-blue.svg)](https://www.python.org/)\n\nA simple clustering by consensus library in Python. This is a simple implementation of a replicated state machine\nusing a Paxos-derived algorithm.\n\n## Getting Started\n\nEnsure you have the following first before you proceed:\n\n1. [Python 3.10+](https://www.python.org/)\n\n   You will require Python 3.10+ to run this project. If you are using a different version of Python, you will need to\n   update your Python version to 3.10+. You can check your Python version by running `python --version`\n   in your terminal. There are ways to install different versions of Python on your system and this can be done using\n   [pyenv](https://github.com/pyenv/pyenv).\n\n2. [Poetry](https://python-poetry.org/)\n\n   Poetry is a Python package manager that is used to manage dependencies. You can check the installation instructions\n   in\n   the link provided to get this setup.\n\n3. [Virtualenv](https://virtualenv.pypa.io/)\n\n   Not a hard requirement as poetry should setup a virtual environment for you, but can be used as well to setup a\n   virtual environment.\n\nOnce you have dependencies setup, run the below command to install dependencies:\n\n```shell\npoetry install\n```\n\n> Even though this implementation has 0 dependencies to external packages, the dev packages are used for linting &\n> handling\n> tests. Therefore, this is useful when running linting & test commands.\n\nThe library itself is in the [konsensus](./konsensus) directory.\n\n## Running\n\nThere is a simple script in the project root [run.py](./run.py) that contains a sample setup on how to use the library.\nIt can be run with:\n\n```shell\npython run.py 10\n```\n\n> _10_ is the seed value, this can be any other value like 20 or 30, etc\n\nThere are other scripts available in the [Makefile](./Makefile) that can be used to run formatting, linting, test or\nbuild commands.\n\n## Built With\n\n| Tool   | Purpose                      |\n|--------|------------------------------|\n| Python | Programming Language         |\n| Poetry | Dependency & Package manager |\n\n## Contributing\n\nPlease read the [contributing guide](./.github/CONTRIBUTING.md) to learn how to contribute to this project.\n\n## Versioning\n\n[Semantic versioning](https://semver/) is used to track the version of the project.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Simple clustering by consensus library",
    "version": "0.1.4",
    "split_keywords": [
        "konsensus",
        "paxos",
        "consensus"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a018976487f3ef85d4c91c2014d1baf1f1436818ce8bfb3d83336dfed455f0f0",
                "md5": "6c29207fb8014687a081434857143720",
                "sha256": "28399e0515ab8fb8f6ff41a5fd7249b99878678df0912db49a376a9486e776ad"
            },
            "downloads": -1,
            "filename": "konsensus-0.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6c29207fb8014687a081434857143720",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<4.0",
            "size": 19394,
            "upload_time": "2023-04-05T04:15:18",
            "upload_time_iso_8601": "2023-04-05T04:15:18.718790Z",
            "url": "https://files.pythonhosted.org/packages/a0/18/976487f3ef85d4c91c2014d1baf1f1436818ce8bfb3d83336dfed455f0f0/konsensus-0.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "311f96cb583501d287159484aa4a96f294617952bdce9637706751b952602fcf",
                "md5": "3a02104f325501a51fb69941eb912f27",
                "sha256": "b0e7b4c2475d5dbe4007c85d7f383d7d00cdb9cb0a77cd68aa17277df01c39b0"
            },
            "downloads": -1,
            "filename": "konsensus-0.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "3a02104f325501a51fb69941eb912f27",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<4.0",
            "size": 13775,
            "upload_time": "2023-04-05T04:15:20",
            "upload_time_iso_8601": "2023-04-05T04:15:20.359201Z",
            "url": "https://files.pythonhosted.org/packages/31/1f/96cb583501d287159484aa4a96f294617952bdce9637706751b952602fcf/konsensus-0.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-05 04:15:20",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "konsensus"
}
        
Elapsed time: 0.05602s