nDPI/python
Ivan Nardi 91bb77a880
A final(?) effort to reduce memory usage per flow (#1389)
Remove some unused fields and re-organize other ones.
In particular:
* Update the parameters of `ndpi_ssl_version2str()` function
* Zattoo, Thunder: these timestamps aren't really used.
* Ftp/mail: these protocols are dissected only over TCP.
* Attention must be paid to TLS.Bittorrent flows to avoid invalid
read/write to `flow->protos.bittorrent.hash` field.

This is the last(?) commit of a long series (see 22241a1d, 227e586e,
730c2360, a8ffcd8b) aiming to reduce library memory consumption.

Before, at nDPI 4.0 (more precisly, at a6b10cf7, because memory stats
were wrong until that commit):
```
nDPI Memory statistics:
	nDPI Memory (once):      221.15 KB
	Flow Memory (per flow):  2.94 KB
```
Now:
```
nDPI Memory statistics:
	nDPI Memory (once):      231.71 KB
	Flow Memory (per flow):  1008 B       <---------
```
i.e. memory usage per flow has been reduced by 66%, dropping below the
psychological threshold of 1 KB.

To further reduce this value, we probably need to look into #1279:
let's fight this battle another day.
2021-12-22 19:54:06 +01:00
..
flow_printer.py Update example. 2020-09-14 16:42:33 +02:00
Makefile.in Added missing library 2021-01-22 09:31:37 +01:00
ndpi.py A final(?) effort to reduce memory usage per flow (#1389) 2021-12-22 19:54:06 +01:00
ndpi_example.py Polish. 2019-11-15 19:30:50 +01:00
ndpi_typestruct.py A final(?) effort to reduce memory usage per flow (#1389) 2021-12-22 19:54:06 +01:00
ndpi_wrap.c Fixes #777 2019-09-23 18:04:55 +02:00
python_extensions_guide.pdf Reworked categories handling 2019-09-29 21:46:41 +02:00
README.rst Update Python cffi bindings. 2020-02-21 17:28:44 +01:00

nDPI Python bindings
--------------------

This directory contains the Python3 bindings for nDPI. We provide both cffi and ctypes based bindings.

**cffi bindings**

Files:

* ndpi.py

Example (using `nfstream <https://github.com/aouinizied/nfstream>`_   package):

.. code-block:: bash

    pip3 install nfstream
    python3 flow_printer.py <interface>
    python3 flow_printer.py <pcap_file>

Code courtesy:

* Zied Aouini

**ctypes bindings**

Files:

* ndpi_typestruct.py
* ndpi_wrap.c
* Makefile.in

Example:

.. code-block:: bash

    pip3 install scapy
    python3 ndpi_example.py <interface>
    python3 ndpi_example.py <pcap_file>

Code courtesy:

* Massimo Puddu
* Zied Aouini