StarNetwork is a simple implementation of the Star network. One node becomes host, and other nodes can send message through the host (broadcast/unicast).
The under pain is host. The left and right upper pains are guest.
By following the instruction below, you can run the demo (tmux and docker-compose are both required).
1. create a tmux session (tmux new -s demo)
2. create a new terminal window, and run demo.bash in the window
StarNetwork/ ................. Top src dir
├── app/ ..................... Application code
├── cmake/ ................... Helpers for CMake
│ ├── cable/ .............. https://github.com/ethereum/cable
│ ├── templates/ ........... Generate build infomation
│ └── toolchains/ .......... Toolchains for this project
├── demo.bash ................ Run demonstration
├── docker/ .................. Dockerfile and scripts
├── docker-compose.dev.yml ... Service definitions for development
├── docker-compose.release.yml Service definitions for release build
├── docker-compose.test.yml .. Service definitions for feature testing and unit testing
├── docs/ .................... Documentation for this project
├── lib/ ..................... Libraries for this project
│ ├── core/ ................ Core library
│ ├── rudp/ ................ Reliable UDP library
│ └── test/ ................ Test library
└── test/ .................... Test code
├── feature/ ............. Feature testing
└── unit/ ................ Unit testing
docker-compose -f docker-compose.dev.yml up -d dev_server
docker-compose -f docker-compose.test.yml run --rm all_tests
docker-compose -f docker-compose.release.yml run --rm build
If you use CLion, remote debugging is available: Remote Debugging with CLion
- Linux
- Reliable UDP (inspired by ENet)
- Flow Control
- Delayed Acknowledgement
- Variable Bandwidth
- Flow Control
- Traffic Encryption
- Data Compression
I've been influenced by:
- ENet : Reliable UDP networking library
- Godot Engine : Multi-platform 2D and 3D game engine