Metadata-Version: 2.4
Name: chordnet
Version: 0.1.0
Summary: Implementation of the chord peer-to-peer networking protocol, introduced by Stoica et al.
Author: Jack Lowrie
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Internet
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System
Classifier: Topic :: System :: Distributed Computing
Classifier: Topic :: System :: Networking
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# chordnet
Python implementation of the chord protocol, introduced by Stoica et al
This library began as a group project for cs536 at Purdue University in
Fall 2024.

## Installation
`pip install chordnet`
`uv add chordnet`

## Usage
to stay consistent with the language from the original
paper, we recommend importing this package as `ring`:
```python
from chordnet import Node as ring
```
This fits with the concept of "joining" an existing ring network, or creating a
new one (`ring.join(...)`, `ring.create()`. Examples follow this practice.

## High level roadmap
- [x] port over code from course project
- [ ] set up repo/project workflows, including using `uv`
- [ ] make sure nodes can run on a single computer (same IP, diff't ports)
- [ ] add robust testing
- [ ] refactor to use asyncio

