Skip to main content

A flexible and powerful network data analysis library

Project description

build coverage quality doc release python platform license

nfstream is a flexible and lightweight network data analysis library.

nfstream main features

  • Performance: nfstream was designed to be fast with a small CPU and memory footprint.

  • Layer-7 visibility: nfstream dissection is based on nDPI (~300 applications including Tor, Messenger, WhatsApp, etc.).

  • Flexibility: add a flow metric in 2 lines of code using nfstream plugins method.

  • Machine Learning oriented: add your trained model as an NFStreamClassifier.

Use

  • Dealing with a big pcap file and just want to aggregate it as network flows? nfstream make this path easier in few lines:

from nfstream.streamer import Streamer
my_capture_streamer = Streamer(source="instagram.pcap") # or capture from a network interface
for flow in my_capture_streamer:  # or for flow in my_live_streamer
    print(flow)  # print, append to pandas Dataframe or whatever you want :)!
  • Didn’t find a specific flow feature? add a plugin to the Streamer in few lines:

def my_awesome_plugin(packet_information, flow, direction):
 if packet_information.length > 666:
     return flow.metrics['count_pkts_gt_666'] + 1

streamer_awesome = Streamer(source='devil.pcap', user_metrics={'count_pkts_gt_666': my_awesome_plugin})
for export in streamer_awesome:
   print(export.metrics['count_pkts_gt_666']) # now you will see your created metric in generated flows
  • More example and details are provided on the official Documentation.

Getting Started

Prerequisites

apt-get install python-dev install pypy3-dev libpcap-dev

Installation

using pip

Binary installers for the latest released version are available:

pip3 install nfstream

from source

If you want to build nfstream on your local machine:

apt-get install autogen
git clone https://github.com/aouinizied/nfstream.git
# move to nfstream directory and run
python3 setup.py install

Contributing

Please read Contributing for details on our code of conduct, and the process for submitting pull requests to us.

Authors

Zied Aouini (aouinizied) created nfstream and these fine people have contributed.

License

This project is licensed under the GPLv3 License - see the License file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

nfstream-1.1.6-cp38-cp38-manylinux1_x86_64.whl (690.2 kB view details)

Uploaded CPython 3.8

nfstream-1.1.6-cp37-cp37m-manylinux1_x86_64.whl (690.2 kB view details)

Uploaded CPython 3.7m

nfstream-1.1.6-cp37-cp37m-macosx_10_14_x86_64.whl (217.8 kB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

nfstream-1.1.6-cp37-cp37m-macosx_10_13_x86_64.whl (219.8 kB view details)

Uploaded CPython 3.7m macOS 10.13+ x86-64

nfstream-1.1.6-cp36-cp36m-manylinux1_x86_64.whl (690.2 kB view details)

Uploaded CPython 3.6m

nfstream-1.1.6-cp36-cp36m-macosx_10_13_x86_64.whl (218.3 kB view details)

Uploaded CPython 3.6m macOS 10.13+ x86-64

File details

Details for the file nfstream-1.1.6-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: nfstream-1.1.6-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 690.2 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.8.0

File hashes

Hashes for nfstream-1.1.6-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7b96a2fb6ca1ab9a219a619f5ad3d57aeb8e7712c1345ff5dbd45fcb32148253
MD5 da41536c13b22025b83c5d94a68241c3
BLAKE2b-256 eb275c66ad8e7ae3eaa84c1179fb76a5742932caedf8bcb21ca796a4f07512ac

See more details on using hashes here.

File details

Details for the file nfstream-1.1.6-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: nfstream-1.1.6-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 690.2 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.1

File hashes

Hashes for nfstream-1.1.6-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6ee2d61ce998dcf640f384dfd4eb41497f43c880db330dc4aa1e7b194457af4c
MD5 f64b161c5c009a1a37872c466b2fb476
BLAKE2b-256 3863dec656308accd598502a816e42969cb3178217ed92a6e82ccc0193c8f792

See more details on using hashes here.

File details

Details for the file nfstream-1.1.6-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: nfstream-1.1.6-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 217.8 kB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.4

File hashes

Hashes for nfstream-1.1.6-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f4046fbd2d54706476c409f9c2a00ab9b2ab54b24a755ef33b1351b93817dec3
MD5 81b5a1364fcecd7dc5206f00561b4aff
BLAKE2b-256 da6fbac4d75671456a0d409fc68b7745b65aad1d9782b6feff1a432395c78ca5

See more details on using hashes here.

File details

Details for the file nfstream-1.1.6-cp37-cp37m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: nfstream-1.1.6-cp37-cp37m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 219.8 kB
  • Tags: CPython 3.7m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.4.3 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.0

File hashes

Hashes for nfstream-1.1.6-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 499d8997bb5538a37d381aca2560b9a86ced7a8df1ad8692a28b12e1bc7152fc
MD5 6e4d2f434f07a643904bd23d65c00892
BLAKE2b-256 b468b43a39ece7c1e4ddb0ebf5a85dbf4f098547970433b4fbb86c4919dba2ad

See more details on using hashes here.

File details

Details for the file nfstream-1.1.6-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: nfstream-1.1.6-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 690.2 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.6.7

File hashes

Hashes for nfstream-1.1.6-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a076e027bd4ac9b798b738983675e441b87fb70a9ebda5cc0e29d46ff7a687e8
MD5 82a608a00a42af165fecb36cd27d22b0
BLAKE2b-256 0fb8fe0b3e9bc6e48cb988806e265cc7d584556ebc2be4e93a6810f7fd50fd32

See more details on using hashes here.

File details

Details for the file nfstream-1.1.6-cp36-cp36m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: nfstream-1.1.6-cp36-cp36m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 218.3 kB
  • Tags: CPython 3.6m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.2.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.6.5

File hashes

Hashes for nfstream-1.1.6-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 db5739d61a0ef53df6d6ca0a114c08cf0fbc03d353b5a2cdbd0a499f3f1e6cfc
MD5 526ce3387fe01f077501d93d3df32ce8
BLAKE2b-256 a288296dd5431b1350c1bf417b19642413bd29a268568eb279ded8883b387dc3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page