# ESDS: An Extensible Simulator For Distributed Systems and Cyber-Physical Systems **What is ESDS ?** It is a short learning curve and coarse-grain network simulator. It contains the essential building blocks for the simulation of *Cyber-Physical Systems* (CPS) and *Wireless Sensors Networks* (WSN) scenarios. It was originally designed to improve node implementation flexibility/faithfulness and mitigate the learning curve compare to existing network simulators. **What ESDS does not implements?** - Network protocols (such as IP/TCP/UDP) - Wireless physical layer models - Routing algorithms - And much more! **Features:** - The implementation of node behavior can be any python file that you have wrote - Wireless interferences detection (not modelization) - Simulation can be interrupted at constant intervals to perform custom actions (such as implement nodes mobility) **Current API:** - `api.args` - `api.send(interface, data,size, dst)` - `api.sendt(interface, data,size, dst,timeout)` - `api.receive(interface)` - `api.receivet(interface,timeout)` - `api.clock()` - `api.log(msg)` - `api.wait(duration)` - `api.turn_off(duration)` - *More details in [example/sender.py](example/sender.py)* **Documentation:** cf. `example/` and `tests/`