mirror of
https://gitlab.com/manzerbredes/esds.git
synced 2025-04-07 02:26:28 +02:00
Major refactoring:
- Create pip package - Reorganized source code
This commit is contained in:
parent
b6877cb81e
commit
7f13c95e16
37 changed files with 28 additions and 56 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +1,4 @@
|
||||||
__pycache__
|
__pycache__
|
||||||
esds.debug
|
esds.debug
|
||||||
|
dist
|
||||||
|
esds.egg*
|
14
README.md
14
README.md
|
@ -2,12 +2,15 @@
|
||||||
# ESDS: An Extensible Simulator For Distributed Systems and Cyber-Physical Systems
|
# ESDS: An Extensible Simulator For Distributed Systems and Cyber-Physical Systems
|
||||||
[](https://www.python.org/) [](https://gitlab.com/manzerbredes/esds/-/tree/main)
|
[](https://www.python.org/) [](https://gitlab.com/manzerbredes/esds/-/tree/main)
|
||||||
|
|
||||||
**What is ESDS ?**
|
### What is ESDS ?
|
||||||
It is a short learning curve and coarse-grain network simulator. It contains the essential building blocks for the simulation of *Distributed Systems*, *Cyber-Physical Systems* (CPS), *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.
|
It is a short learning curve and coarse-grain network simulator. It contains the essential building blocks for the simulation of *Distributed Systems*, *Cyber-Physical Systems* (CPS), *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.
|
||||||
|
|
||||||
ESDS is part of a research project. Thus, studies and validation experiments are available online. For more details please visit http://todo.com.
|
ESDS is part of a research project. Thus, studies and validation experiments are available online. For more details please visit http://todo.com.
|
||||||
|
|
||||||
**Features:**
|
### Installation
|
||||||
|
`> pip install esds`
|
||||||
|
|
||||||
|
### Features
|
||||||
- Easy to use
|
- Easy to use
|
||||||
- Small API
|
- Small API
|
||||||
- Agent-based: node implementations are in independant python files
|
- Agent-based: node implementations are in independant python files
|
||||||
|
@ -15,13 +18,13 @@ ESDS is part of a research project. Thus, studies and validation experiments are
|
||||||
- Custom node mobility (by updating the network matrix)
|
- Custom node mobility (by updating the network matrix)
|
||||||
- Nodes plugins (e.g energy consumption)
|
- Nodes plugins (e.g energy consumption)
|
||||||
|
|
||||||
**What ESDS does not implements (yet?) ?**
|
### What ESDS does not implements ?
|
||||||
- Network protocols (e.g IP/TCP/UDP)
|
- Network protocols (e.g IP/TCP/UDP)
|
||||||
- Wireless physical layer models (e.g Friis and Log-Distance models, modulation, RSSI)
|
- Wireless physical layer models (e.g Friis and Log-Distance models, modulation, RSSI)
|
||||||
- Routing algorithms (e.g Shortest path)
|
- Routing algorithms (e.g Shortest path)
|
||||||
- And much more!
|
- And much more!
|
||||||
|
|
||||||
**Current API:**
|
### Simulation API
|
||||||
- `api.args`
|
- `api.args`
|
||||||
- `api.send(<int>,<data>,<size>,<dst>)`
|
- `api.send(<int>,<data>,<size>,<dst>)`
|
||||||
- `api.sendt(<int>,<data>,<size>,<dst>,<t>)`
|
- `api.sendt(<int>,<data>,<size>,<dst>,<t>)`
|
||||||
|
@ -35,4 +38,5 @@ ESDS is part of a research project. Thus, studies and validation experiments are
|
||||||
- `api.turn_off()`
|
- `api.turn_off()`
|
||||||
- *More details on the API in [example/sender.py](example/sender.py)*
|
- *More details on the API in [example/sender.py](example/sender.py)*
|
||||||
|
|
||||||
**Documentation:** see `example/` and `tests/`
|
### Documentation
|
||||||
|
See `example/` and `tests/`
|
||||||
|
|
3
esds/__init__.py
Normal file
3
esds/__init__.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
__all__ = ["simulator", "plugins"]
|
||||||
|
|
||||||
|
from esds.esds import Simulator
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
import sys
|
||||||
sys.path.append("../")
|
|
||||||
import esds
|
import esds
|
||||||
|
|
||||||
# Use numpy to construct bandwidth and latencies matrix
|
# Use numpy to construct bandwidth and latencies matrix
|
||||||
|
|
3
pyproject.toml
Normal file
3
pyproject.toml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[build-system]
|
||||||
|
requires = ["setuptools"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
11
setup.cfg
Normal file
11
setup.cfg
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[metadata]
|
||||||
|
name = esds
|
||||||
|
version = 0.0.1
|
||||||
|
author = Loic Guegan
|
||||||
|
maintainer = Loic Guegan
|
||||||
|
description = Extensible Simulator of Distributed Systems
|
||||||
|
keywords = simulator, distributed systems, cyber-physical systems, network, wireless, wired
|
||||||
|
license = GNU LGPLv3
|
||||||
|
|
||||||
|
[options]
|
||||||
|
install_requires = numpy >= 1.22.4
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# Load ESDS
|
# Load ESDS
|
||||||
import sys
|
|
||||||
sys.path.append("../../")
|
|
||||||
import esds
|
import esds
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue