Metadata-Version: 2.4
Name: nsddos
Version: 0.9.0b2
Summary: IoT DDoS detection and simulation framework.
Author: NS-DDoS Contributors
License: MIT
Keywords: cybersecurity,ddos,iot,networking,simulation
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Security
Classifier: Topic :: System :: Networking
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer<1.0,>=0.12
Requires-Dist: rich<14.0,>=13.7
Requires-Dist: loguru<1.0,>=0.7
Requires-Dist: PyYAML<7.0,>=6.0
Requires-Dist: fastapi<1.0,>=0.115
Requires-Dist: uvicorn<1.0,>=0.30
Requires-Dist: jinja2<4.0,>=3.1
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: httpx; extra == "dev"
Dynamic: license-file

# NS-DDoS

NS-DDoS is Linux-first IoT DDoS lab and runtime verification framework. Standalone repo root is deployment root. No sibling `floodlight`, `ns-ddos`, or `mininet` checkout required.

## Quickstart

```bash
git clone https://github.com/ns7523/nsddos.git
cd nsddos
python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
cp .env.example .env
docker-compose up --build -d
python -m nsddos health
python -m nsddos verify
```

`docker compose up --build -d` works too. Canonical deploy entrypoint is repo-root `docker-compose.yml`.

## Bundled Runtime Assets

Repo carries runtime payload required for clean-clone deployment:
- `external/floodlight/floodlight.jar`
- `external/floodlight/logback.xml`
- `external/floodlight/floodlightdefault.properties`
- `external/sflowrt/start.sh`
- `external/sflowrt/lib/`
- `external/sflowrt/app/`
- `external/sflowrt/resources/`
- `external/sflowrt/store/`

## Runtime Surfaces

Primary commands:

```bash
nsddos health
nsddos verify
nsddos lab start
nsddos lab stop
nsddos lab logs
nsddos api routes
nsddos api explain
nsddos api start
nsddos runtime install-guide
nsddos runtime validate-bootstrap
nsddos runtime export-environment
```

Runtime services:
- `labhost`
- `floodlight`
- `sflowrt`
- `detector`

Runtime state persists under `.nsddos-home/` by default, or `NSDDOS_HOME` when set.

## Requirements

- Python 3.11+
- Docker Engine
- Docker Compose v1 (`docker-compose`) or v2 (`docker compose`)

## Environment Overrides

- `NSDDOS_HOME`
- `NSDDOS_CONFIG`
- `NSDDOS_COMPOSE_FILE`
- `NSDDOS_MININET_BIN`

## License

MIT
