Documentation: Not yet finished. Working on it.
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. Templates available at https://bitbucket.org/fholmer/cookiecutter-netdef.
Code in Rule-Source-Controller design pattern.
Built-in Controllers:
OpcUa server / client ([freeopcua](https://pypi.org/project/freeopcua/))
TcpModbus server / client ([pymodbus](https://pypi.org/project/pymodbus/))
icmp ping / url ping
XmlRpc client
trigger events by using crontab format ([crontab](https://pypi.org/project/crontab/))
disk, memory and CPU monitoring ([psutil](https://pypi.org/project/psutil/))
MQTT client (using a simple messaging format called DataAccess) ([paho-mqtt](https://pypi.org/project/paho-mqtt/))
Simple RESTJson client
Built-in Rules:
Generic CSV 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 cookiecutter and netdef templates:
$ python3 -m venv cookiecutter/ $ cookiecutter/bin/pip install cookiecutter $ hg clone https://bitbucket.org/fholmer/cookiecutter-netdef cookiecutter/cookiecutter-netdef
Create your first application:
$ cookiecutter/bin/cookiecutter cookiecutter/cookiecutter-netdef/cookiecutter-minimal-app
Cookiecutter and netdef-templates can now be removed if you wish.
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
Release files for netdef 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netdef-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / netdef-1.0.2-py3-none-any.whl
| Download URL | netdef-1.0.2-py3-none-any.whl |
|---|---|
| Size | 77.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9123b52d8940ce015f2b5c5d057d59224f3592de3461b132f0de9cc4fa760923
|
|
BLAKE2b-256 checksum How to use checksums |
155b26a10ef15d58390688fc8f515437f3316801325ace95215f3590edad8a1c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/32.3.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.5.3
|