Professional ION-DTN Mission Control & BPv7 Simulation Framework
Project description
⚛️ EmION — Professional ION-DTN Simulation
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.
🌍 1. Platform Compatibility
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. |
🚀 2. Installation
Quick Start (PyPI)
- Install the framework:
pip install "emion[dashboard]"
- Setup Dependencies:
EmION requires the ION-DTN C-engine. Automatically install everything with:
emion setup
Developer Setup (Source)
For a manual environment setup:
git clone https://github.com/info-gallary/emion.git
cd emion
chmod +x install.sh
./install.sh # Builds everything from source
🧪 3. Verification
Ensure your environment is correctly configured by running the professional test suite. This verifies real-time bundle transit and CGR routing:
python3 tests/test_emion.py
🛰️ 4. Usage
Launching Mission Control
Start 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.
Command Line Interface
emion info # Check ION system status
emion dashboard # Start visual UI
🔌 5. Connecting Third-Party Modules (API)
EmION supports selective attachment of Anomaly Detection or Security modules via a FastAPI-based Plugin System.
Step A: Implement your Plugin
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"} }
Step B: Connect to EmION
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.
Demo Reference
See anomaly_detector.py for a functional sample implementation.
🐳 6. Docker (Self-Contained BPv7)
Run the entire EmION environment (ION-DTN + pyion + Dashboard) without local installation.
Build and Run
docker build -t emion .
docker run -p 8420:8420 emion
Access Mission Control at http://localhost:8420.
📦 7. Package Management (Developers)
Build the Package
pip install build twine
python3 -m build
Upload to PyPI
twine upload dist/*
🏗️ Project Structure
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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file emion-0.4.0.tar.gz.
File metadata
- Download URL: emion-0.4.0.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45c748cb0a00e9499a6077007f3b4452f110bf7bceec771f4b369097002407d3
|
|
| MD5 |
0858c6745d884ca439caf592bd0eebb8
|
|
| BLAKE2b-256 |
9eda78d83baa85f319ad5e5bf2daf3743e4ab58f969a21caf46dc5529a061b98
|
File details
Details for the file emion-0.4.0-py3-none-any.whl.
File metadata
- Download URL: emion-0.4.0-py3-none-any.whl
- Upload date:
- Size: 24.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d56c8f649edb4dad643aee3463cfd32f1691f062c00dfb07006f2138ad94ffa3
|
|
| MD5 |
5bef43f8cc8f7e9250b5210f2b4154d4
|
|
| BLAKE2b-256 |
753a8d34459ae50773e5ed3b8fafe831df2b2b2ea1bc02f9a9f70c5d8ee7cc0a
|