This is a prototype of the zells system used to explore the design of the zells messaging protocol, implementation of a distributed peer-to-peer network based on it. The goal of this project is to create a software development environment that avoids most if not all incidental complications of existing environments.
A Zell encapsulates behaviour. Each zell has a unique Address which can be used to send it asynchronous Messages with arbitrary but structured content. Each Message is delivered exactly once if the receiver can be found.
Zells live on a Dish. A Dish can be connected to other Dishes, forming a Network of Zells. Messages can be sent to any Zell on the Network using its Address, regardless of the physical location of the Zell's Dish.
The project can be downloaded with git and built with gradle.
git clone https://github.com/zells/three.git zells
cd zells
./gradlew check
The usage of each module is described in the module. They are
- dish - Library for sending and receiving Messages on a Zells Network
- cortex - Provides a user interface to the Dish
- samples - Samples demonstrating how zells can be used
This project is a work-in-progress prototype with minimal documentation. If you have any question or comment, please don't hesitate to contact me.
Any kind of contribution will be much appreciated. Not just code but also comments and general remarks. Just drop me a line or open a new issue.
The documents and software in this repository are licensed under the GPLv3 License.