RobinNet is a lightweight store-and-forward messaging network designed for:
Each node stores messages locally and synchronizes them with peer nodes.
RobinNet was designed with these principles:
Nodes can run on:
A RobinNet node contains:
Nodes exchange messages using a lightweight HTTP protocol.
| File | Description |
|---|---|
| db.py | SQLite database layer |
| models.py | Message structures and hashing |
| cli.py | Command line operator interface |
| api.py | HTTP API server |
| sync.py | Peer synchronization engine |
| main.py | Node launcher |
| daemon.py | Background maintenance worker |
| Section | Description |
|---|---|
| install | Installing and deploying RobinNet |
| testing | Local testing workflows |
| cli | Command line interface |
| api | API documentation |
| db | Database layer |
| models | Message models |
| sync | Synchronization engine |
Typical operator workflow:
Example:
python -m robinnet.cli --db ./data/alpha.db init-node --name alpha --operator "Rich" python -m robinnet.cli --db ./data/alpha.db add-peer --name bravo --url http://127.0.0.1:8082 python -m robinnet.cli --db ./data/alpha.db peer-test --peer-id 1 python -m robinnet.cli --db ./data/alpha.db post-bulletin --title "Test" --body "Hello" python -m robinnet.cli --db ./data/alpha.db sync-all
Future development includes:
Cardinal will be the future graphical interface for RobinNet.
Goals:
Cardinal will communicate with RobinNet using the API.