Skip to main content

A flexible and powerful network data analysis library

Project description

build doc quality 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.1-cp38-cp38-manylinux1_x86_64.whl (692.0 kB view details)

Uploaded CPython 3.8

nfstream-1.1.1-cp37-cp37m-manylinux1_x86_64.whl (692.0 kB view details)

Uploaded CPython 3.7m

nfstream-1.1.1-cp36-cp36m-manylinux1_x86_64.whl (692.0 kB view details)

Uploaded CPython 3.6m

File details

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

File metadata

  • Download URL: nfstream-1.1.1-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 692.0 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.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d578caffb207e0a725af51f1a250a787a378a01f048f81e07d3762e1318c0618
MD5 86eecad4b659b3817ee32d6378cc51f4
BLAKE2b-256 3d7a2a7d1869c6e1aed359f882d3be25d618c3c6b873a5fc0afe0f97538c0fd3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-1.1.1-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 692.0 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.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 decb8092f95ab5dfd6d8cba395038796b961ff8d97d296900428cee3c2c02244
MD5 265fd0d89cc3672e19151c011e5436c2
BLAKE2b-256 0ae83a2c90c45e401c7d592793952c92a8221e7a75c9b4d01bc849d8a4184992

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-1.1.1-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 692.0 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.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 073af64a78132ee3fc93fd62598859f82b95a7e562db2e8d33a8463a70ec812e
MD5 163071719d6486d1cfa5484b4ba96ab2
BLAKE2b-256 c4c174e39aa093d5eedc647685d57a6773a136bbc68cb8ce97ff23f1600c5c0d

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