EmION is an authentic, production-ready Delay-Tolerant Networking (DTN) simulation framework. Unlike other simulators, EmION uses the real ION-DTN C-engine and Contact Graph Routing (CGR) for 100% protocol authenticity.
EmION relies on the NASA-JPL ION-DTN C-engine. Choose your platform:
| Platform | Support | Recommendation |
|---|---|---|
| Linux (Ubuntu/Debian) | ✅ Native | Recommended. Use the install.sh for one-click setup. |
| Windows (WSL2) | ✅ Supported | Best for Windows. Install Ubuntu 22.04 on WSL2 and follow Linux steps. |
| Docker (Any OS) | ✅ Containerized | Easiest. Run the pre-built environment with zero local setup. |
| Windows (Native) | ❌ Not Supported | Use WSL2 or Docker. ION-DTN requires a POSIX environment. |
Install the framework and dashboard directly from PyPI:
pip install "emion[dashboard]"For a complete environment setup (including building ION-DTN and pyion from source):
git clone https://github.com/info-gallary/emion.git
cd emion
chmod +x install.sh
./install.shEnsure your environment is correctly configured by running the professional test suite. This verifies real-time bundle transit and CGR routing:
python3 tests/test_emion.pyStart the visual dashboard to manage multi-node topologies and view live telemetry:
emion dashboard- URL:
http://localhost:8420 - Telemetry: Real-time SDR memory and bundle tracking.
- Visuals: Canvas-based topology with bundle animation.
emion info # Check ION system status
emion dashboard # Start visual UIEmION supports selective attachment of Anomaly Detection or Security modules via a FastAPI-based Plugin System.
Your module must be a web service (FastAPI) with these endpoints:
GET /health->{"status": "ok"}POST /analyze-> Receives bundlepayloadandmetadata, returns:{ "is_anomaly": true, "score": 0.95, "label": "attack", "details": {"reason": "Payload too large"} }
In the Dashboard UI (or via API), connect your module:
- Module URL:
http://localhost:8421 - Target Nodes: Selectively monitor specific nodes (e.g.,
1,3) orall.
See anomaly_detector.py for a functional sample implementation.
Run the entire EmION environment (ION-DTN + pyion + Dashboard) without local installation.
docker build -t emion .
docker run -p 8420:8420 emionAccess Mission Control at http://localhost:8420.
pip install build twine
python3 -m buildtwine upload dist/*emion/— Core BPv7 orchestration.docs/— Coding Guide & Usage Notebook.ION-DTN/— Authentic NASA-JPL C-Engine.Dockerfile— Professional self-contained environment.README.md— This guide.
Authentic. Professional. Space-Ready. ⚛️
- ION-DTN (compiled, with ionadmin/bpadmin in PATH)
- pyion (built against your ION installation)
- FastAPI + uvicorn + websockets (for dashboard)