An application framework with built-in drivers (Controllers), data holders (Sources) and config parsers (Rules). Also includes a web interface for configuration and troubleshooting.
Project description
Documentation: https://netdef.readthedocs.io/en/latest/
Bitbucket: https://bitbucket.org/fholmer/netdef
License: GNU Lesser General Public License v3 or later (LGPLv3+)
Summary
An application framework with built-in drivers (Controllers), data holders (Sources) and config parsers (Rules). Also includes a web interface for configuration and troubleshooting.
Features
Abstract base classes for creating custom controllers, sources and rules
The configuration is done using configparser with extended interpolation
Start a new netdef project with cookiecutter or make-project. Templates available at https://bitbucket.org/fholmer/cookiecutter-netdef.
Built-in Controllers:
Built-in Rules:
Generic CSV config parser
Generic INI config parser
Generic Yaml config parser
Built-in application engines:
threaded engine with stdout/stderr only
threaded engine with web-interface (webadmin)
serve webadmin behind nginx reverse proxy
Use Cases
Netdef is useful if you want to create a middleware that can translate a protocol into a completely different protocol or data format into a completely different data format.
Getting started
First install make-project:
$ python3 -m pip --user install make
Create your first application:
$ python3 -m make project gl:fholmer/cookiecutter-netdef/cookiecutter-minimal-app First-App
Setup your application:
$ cd your-application $ python3 -m venv venv $ source venv/bin/activate $ pip install -r requirements-dev.txt $ pip install -r requirements.txt
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.