# ESDS: An Extensible Simulator For Distributed Systems and Cyber-Physical Systems
[![Dependency](https://img.shields.io/badge/Python-v3.10-blue)](https://www.python.org/) [![Pipeline](https://gitlab.com/manzerbredes/esds/badges/main/pipeline.svg)](https://gitlab.com/manzerbredes/esds/-/tree/main)
### What is ESDS ?
It is a short learning curve and coarse-grain simulator for distributed systems. ESDS contains the building blocks for the simulation of *Distributed Systems*, *Cyber-Physical Systems* (CPS), *Wireless Sensors Networks* (WSN) etc. It is designed to improve the flexibility/faithfulness of nodes implementations and mitigate the learning curve compare to existing simulators.
ESDS is part of a research project. Studies and validation experiments are available online. For more details please visit http://todo.com.
### Installation
`> pip install esds`
To ensure that esds is properly working and installed on your system, you can clone this repository, and run the simulation tests with one of the following scripts:
- `tests/run.sh`
- `tests/run.py`
### Features
- Easy to use
- Small API
- Agent-based: node implementations are located in dedicated python files
- Wireless interferences detection (i.e not modelization)
- Node mobility (through dynamic updates of the network matrices)
- Node plugins (e.g: energy consumption)
### What ESDS does not implements ?
- Network protocols (e.g IP/TCP/UDP)
- Wireless physical layer models (e.g: Friis and Log-Distance models, modulation, RSSI)
- Routing algorithms (e.g: Shortest path)
- And much more!
### Simulation API
- `api.args`
- `api.send(<int>,<data>,<size>,<dst>)`
- `api.sendt(<int>,<data>,<size>,<dst>,<t>)`
- `api.receive(<int>)`
- `api.receivet(<int>,<t>)`
- `api.wait(<t>)`
- `api.wait_end()`
- `api.log(<message>)`
- `api.read(<register>)`
- `api.turn_on()`
- `api.turn_off()`
- More detailed examples are available here:
- [example/sender.py](https://gitlab.com/manzerbredes/esds/-/blob/main/example/sender.py)
- [example/receiver.py](https://gitlab.com/manzerbredes/esds/-/blob/main/example/receiver.py)
### Documentation
The documentation of ESDS is available in the [user manual](https://gitlab.com/manzerbredes/esds/-/blob/main/manual/manual.pdf).
Raw data
{
"_id": null,
"home_page": null,
"name": "esds",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "simulator, distributed systems, cyber-physical, systems, network, wireless, wired",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/c6/21/48161ede3d6712365321dc77618d06f1a4bd858c2e87d33855d5c9cb295f/esds-0.0.8.tar.gz",
"platform": null,
"description": "\n# ESDS: An Extensible Simulator For Distributed Systems and Cyber-Physical Systems\n[![Dependency](https://img.shields.io/badge/Python-v3.10-blue)](https://www.python.org/) [![Pipeline](https://gitlab.com/manzerbredes/esds/badges/main/pipeline.svg)](https://gitlab.com/manzerbredes/esds/-/tree/main)\n\n### What is ESDS ?\nIt is a short learning curve and coarse-grain simulator for distributed systems. ESDS contains the building blocks for the simulation of *Distributed Systems*, *Cyber-Physical Systems* (CPS), *Wireless Sensors Networks* (WSN) etc. It is designed to improve the flexibility/faithfulness of nodes implementations and mitigate the learning curve compare to existing simulators. \n\nESDS is part of a research project. Studies and validation experiments are available online. For more details please visit http://todo.com.\n\n### Installation\n`> pip install esds`\n\nTo ensure that esds is properly working and installed on your system, you can clone this repository, and run the simulation tests with one of the following scripts:\n- `tests/run.sh`\n- `tests/run.py`\n\n### Features\n- Easy to use\n- Small API\n- Agent-based: node implementations are located in dedicated python files\n- Wireless interferences detection (i.e not modelization)\n- Node mobility (through dynamic updates of the network matrices)\n- Node plugins (e.g: energy consumption)\n\n### What ESDS does not implements ?\n- Network protocols (e.g IP/TCP/UDP)\n- Wireless physical layer models (e.g: Friis and Log-Distance models, modulation, RSSI)\n- Routing algorithms (e.g: Shortest path)\n- And much more!\n\n### Simulation API\n- `api.args`\n- `api.send(<int>,<data>,<size>,<dst>)`\n- `api.sendt(<int>,<data>,<size>,<dst>,<t>)`\n- `api.receive(<int>)`\n- `api.receivet(<int>,<t>)`\n- `api.wait(<t>)`\n- `api.wait_end()`\n- `api.log(<message>)`\n- `api.read(<register>)`\n- `api.turn_on()`\n- `api.turn_off()`\n- More detailed examples are available here:\n - [example/sender.py](https://gitlab.com/manzerbredes/esds/-/blob/main/example/sender.py)\n - [example/receiver.py](https://gitlab.com/manzerbredes/esds/-/blob/main/example/receiver.py)\n\n### Documentation\nThe documentation of ESDS is available in the [user manual](https://gitlab.com/manzerbredes/esds/-/blob/main/manual/manual.pdf).\n",
"bugtrack_url": null,
"license": null,
"summary": "An Extensible Simulator for Distributed Systems",
"version": "0.0.8",
"project_urls": null,
"split_keywords": [
"simulator",
" distributed systems",
" cyber-physical",
" systems",
" network",
" wireless",
" wired"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b81dd7d3f6f9070a66c446a98bb9756d9376ae6eae8ad47d975ca547b96e4347",
"md5": "74b4348b6e849f80151f8f86983b90fc",
"sha256": "146bf599ed7aebf1be2bb4ccdc084e5b75772619aa0872e42f12e624e93231fd"
},
"downloads": -1,
"filename": "esds-0.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "74b4348b6e849f80151f8f86983b90fc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 23396,
"upload_time": "2024-03-21T10:20:16",
"upload_time_iso_8601": "2024-03-21T10:20:16.884334Z",
"url": "https://files.pythonhosted.org/packages/b8/1d/d7d3f6f9070a66c446a98bb9756d9376ae6eae8ad47d975ca547b96e4347/esds-0.0.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c62148161ede3d6712365321dc77618d06f1a4bd858c2e87d33855d5c9cb295f",
"md5": "caabc6774a831e4389a86a00b27f0324",
"sha256": "8bcf671d77af53acdbccc1cf57d24e9c70c036bfd85c626e5738068d1f27264f"
},
"downloads": -1,
"filename": "esds-0.0.8.tar.gz",
"has_sig": false,
"md5_digest": "caabc6774a831e4389a86a00b27f0324",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21267,
"upload_time": "2024-03-21T10:20:18",
"upload_time_iso_8601": "2024-03-21T10:20:18.661986Z",
"url": "https://files.pythonhosted.org/packages/c6/21/48161ede3d6712365321dc77618d06f1a4bd858c2e87d33855d5c9cb295f/esds-0.0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-21 10:20:18",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "esds"
}