Skip to main content

A Flexible Network Data Analysis Framework

Project description

NFStream Logo


NFStream is a Python framework providing fast, flexible, and expressive data structures designed to make working with online or offline network data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world network data analysis in Python. Additionally, it has the broader goal of becoming a common network data analytics framework for researchers providing data reproducibility across experiments.

Live Notebook live notebook
Project Website website
Discussion Channel Gitter
Latest Release latest release
Supported Versions python3
Project License License
Build Status Github WorkFlows Travis CI
Code Quality Quality Quality
Code Coverage Coverage

Main Features

  • Performance: NFStream is designed to be fast: AF_PACKETV3/FANOUT on Linux, parallel processing, native C (using CFFI) for critical computation and PyPy support.
  • Encrypted layer-7 visibility: NFStream deep packet inspection is based on nDPI. It allows NFStream to perform reliable encrypted applications identification and metadata fingerprinting (e.g. TLS, SSH, DHCP, HTTP).
  • Statistical features extraction: NFStream provides state of the art of flow-based statistical feature extraction. It includes both post-mortem statistical features (e.g. min, mean, stddev and max of packet size and inter arrival time) and early flow features (e.g. sequence of first n packets sizes, inter arrival times and directions).
  • Flexibility: NFStream is easily extensible using NFPlugins. It allows to create a new feature within a few lines of Python.
  • Machine Learning oriented: NFStream aims to make Machine Learning Approaches for network traffic management reproducible and deployable. By using NFStream as a common framework, researchers ensure that models are trained using the same feature computation logic and thus, a fair comparison is possible. Moreover, trained models can be deployed and evaluated on live network using NFPlugins.

How to get it?

Binary installers for the latest released version are available on Pypi.

pip install nfstream

How to use it?

Encrypted application identification and metadata extraction

Dealing with a big pcap file and just want to aggregate into labeled network flows? NFStream make this path easier in few lines:

from nfstream import NFStreamer
# We display all streamer parameters with their default values.
# See documentation for detailed information about each parameter.
# https://www.nfstream.org/docs/api#nfstreamer
my_streamer = NFStreamer(source="facebook.pcap", # or network interface
                         decode_tunnels=True,
                         bpf_filter=None,
                         promiscuous_mode=True,
                         snapshot_length=1536,
                         idle_timeout=120,
                         active_timeout=1800,
                         accounting_mode=0,
                         udps=None,
                         n_dissections=20,
                         statistical_analysis=False,
                         splt_analysis=0,
                         n_meters=0,
                         performance_report=0)

for flow in my_streamer:
    print(flow)  # print it.
# See documentation for each feature detailed description.
# https://www.nfstream.org/docs/api#nflow
NFlow(id=0,
      expiration_id=0,
      src_ip='192.168.43.18',
      src_mac='30:52:cb:6c:9c:1b',
      src_oui='30:52:cb',
      src_port=52066,
      dst_ip='66.220.156.68',
      dst_mac='98:0c:82:d3:3c:7c',
      dst_oui='98:0c:82',
      dst_port=443,
      protocol=6,
      ip_version=4,
      vlan_id=0,
      bidirectional_first_seen_ms=1472393122365,
      bidirectional_last_seen_ms=1472393123665,
      bidirectional_duration_ms=1300,
      bidirectional_packets=19,
      bidirectional_bytes=5745,
      src2dst_first_seen_ms=1472393122365,
      src2dst_last_seen_ms=1472393123408,
      src2dst_duration_ms=1043,
      src2dst_packets=9,
      src2dst_bytes=1345,
      dst2src_first_seen_ms=1472393122668,
      dst2src_last_seen_ms=1472393123665,
      dst2src_duration_ms=997,
      dst2src_packets=10,
      dst2src_bytes=4400,
      application_name='TLS.Facebook',
      application_category_name='SocialNetwork',
      application_is_guessed=0,
      requested_server_name='facebook.com',
      client_fingerprint='bfcc1a3891601edb4f137ab7ab25b840',
      server_fingerprint='2d1eb5817ece335c24904f516ad5da12',
      user_agent='',
      content_type='')

Post-mortem statistical flow features extraction

NFStream performs 48 post mortem flow statistical features extraction which include detailed TCP flags analysis, minimum, mean, maximum and standard deviation of both packet size and interarrival time in each direction.

from nfstream import NFStreamer
my_streamer = NFStreamer(source="facebook.pcap",
                         # Disable L7 dissection for readability purpose.
                         n_dissections=0,  
                         statistical_analysis=True)
for flow in my_streamer:
    print(flow)
# See documentation for each feature detailed description.
# https://www.nfstream.org/docs/api#nflow
NFlow(id=0,
      expiration_id=0,
      src_ip='192.168.43.18',
      src_mac='30:52:cb:6c:9c:1b',
      src_oui='30:52:cb',
      src_port=52066,
      dst_ip='66.220.156.68',
      dst_mac='98:0c:82:d3:3c:7c',
      dst_oui='98:0c:82',
      dst_port=443,
      protocol=6,
      ip_version=4,
      vlan_id=0,
      bidirectional_first_seen_ms=1472393122365,
      bidirectional_last_seen_ms=1472393123665,
      bidirectional_duration_ms=1300,
      bidirectional_packets=19,
      bidirectional_bytes=5745,
      src2dst_first_seen_ms=1472393122365,
      src2dst_last_seen_ms=1472393123408,
      src2dst_duration_ms=1043,
      src2dst_packets=9,
      src2dst_bytes=1345,
      dst2src_first_seen_ms=1472393122668,
      dst2src_last_seen_ms=1472393123665,
      dst2src_duration_ms=997,
      dst2src_packets=10,
      dst2src_bytes=4400,
      bidirectional_min_ps=66,
      bidirectional_mean_ps=302.36842105263156,
      bidirectional_stddev_ps=425.53315715259754,
      bidirectional_max_ps=1454,
      src2dst_min_ps=66,
      src2dst_mean_ps=149.44444444444446,
      src2dst_stddev_ps=132.20354676701294,
      src2dst_max_ps=449,
      dst2src_min_ps=66,
      dst2src_mean_ps=440.0,
      dst2src_stddev_ps=549.7164925870628,
      dst2src_max_ps=1454,
      bidirectional_min_piat_ms=0,
      bidirectional_mean_piat_ms=72.22222222222223,
      bidirectional_stddev_piat_ms=137.34994188549086,
      bidirectional_max_piat_ms=398,
      src2dst_min_piat_ms=0,
      src2dst_mean_piat_ms=130.375,
      src2dst_stddev_piat_ms=179.72036811192467,
      src2dst_max_piat_ms=415,
      dst2src_min_piat_ms=0,
      dst2src_mean_piat_ms=110.77777777777777,
      dst2src_stddev_piat_ms=169.51458475436397,
      dst2src_max_piat_ms=409,
      bidirectional_syn_packets=2,
      bidirectional_cwr_packets=0,
      bidirectional_ece_packets=0,
      bidirectional_urg_packets=0,
      bidirectional_ack_packets=18,
      bidirectional_psh_packets=9,
      bidirectional_rst_packets=0,
      bidirectional_fin_packets=0,
      src2dst_syn_packets=1,
      src2dst_cwr_packets=0,
      src2dst_ece_packets=0,
      src2dst_urg_packets=0,
      src2dst_ack_packets=8,
      src2dst_psh_packets=4,
      src2dst_rst_packets=0,
      src2dst_fin_packets=0,
      dst2src_syn_packets=1,
      dst2src_cwr_packets=0,
      dst2src_ece_packets=0,
      dst2src_urg_packets=0,
      dst2src_ack_packets=10,
      dst2src_psh_packets=5,
      dst2src_rst_packets=0,
      dst2src_fin_packets=0)

Early statistical flow features extraction

NFStream performs early (up to 255 packets) flow statistical features extraction (also referred as SPLT analysis in the literature). It is summarized as a sequence a these packets directions, sizes and interarrival times.

from nfstream import NFStreamer
my_streamer = NFStreamer(source="facebook.pcap",
                         # We disable both l7 dissection and statistical analysis
                         # for readability purpose.
                         n_dissections=0,
                         statistical_analysis=False,
                         splt_analysis=10)
for flow in my_streamer:
    print(flow)
# See documentation for each feature detailed description.
# https://www.nfstream.org/docs/api#nflow
NFlow(id=0,
      expiration_id=0,
      src_ip='192.168.43.18',
      src_mac='30:52:cb:6c:9c:1b',
      src_oui='30:52:cb',
      src_port=52066,
      dst_ip='66.220.156.68',
      dst_mac='98:0c:82:d3:3c:7c',
      dst_oui='98:0c:82',
      dst_port=443,
      protocol=6,
      ip_version=4,
      vlan_id=0,
      bidirectional_first_seen_ms=1472393122365,
      bidirectional_last_seen_ms=1472393123665,
      bidirectional_duration_ms=1300,
      bidirectional_packets=19,
      bidirectional_bytes=5745,
      src2dst_first_seen_ms=1472393122365,
      src2dst_last_seen_ms=1472393123408,
      src2dst_duration_ms=1043,
      src2dst_packets=9,
      src2dst_bytes=1345,
      dst2src_first_seen_ms=1472393122668,
      dst2src_last_seen_ms=1472393123665,
      dst2src_duration_ms=997,
      dst2src_packets=10,
      dst2src_bytes=4400,
      # The sequence of 10 first packet direction, size and inter arrival time.
      splt_direction=[0, 1, 0, 0, 1, 1, 0, 1, 0, 1],
      splt_ps=[74, 74, 66, 262, 66, 1454, 66, 1454, 66, 463],
      splt_piat_ms=[0, 303, 0, 0, 313, 0, 0, 0, 0, 1])

Pandas export interface

NFStream natively supports Pandas as export interface.

# See documentation for more details.
# https://www.nfstream.org/docs/api#pandas-dataframe-conversion
from nfstream import NFStreamer
my_dataframe = NFStreamer(source='teams.pcap').to_pandas()[["src_ip",
                                                            "src_port",
                                                            "dst_ip", 
                                                            "dst_port", 
                                                            "protocol",
                                                            "bidirectional_packets",
                                                            "bidirectional_bytes",
                                                            "application_name"]]
my_dataframe.head(5)

Pandas

CSV export interface

NFStream natively supports CSV file format as export interface.

# See documentation for more details.
# https://www.nfstream.org/docs/api#csv-file-conversion
flows_count = NFStreamer(source='facebook.pcap').to_csv(path=None,
                                                        flows_per_file=0,
                                                        columns_to_anonymize=[])

Extending NFStream

Didn't find a specific flow feature? add a plugin to NFStream in few lines:

from nfstream import NFPlugin

class MyCustomFeature(NFPlugin):
    def on_init(self, packet, flow):
        # flow creation with the first packet
        if packet.raw_size == self.custom_size:
            flow.udps.packet_with_custom_size = 1
        else:
            flow.udps.packet_with_custom_size = 0

    def on_update(self, packet, flow):
        # flow update with each packet belonging to the flow 
        if packet.raw_size == self.custom_size:
            flow.udps.packet_with_custom_size += 1


extended_streamer = NFStreamer(source='facebook.pcap', 
                               udps=MyCustomFeature(custom_size=555))

for flow in extended_streamer:
    # see your dynamically created metric in generated flows
    print(flow.udps.packet_with_custom_size) 

Machine Learning models training and deployment

In the following example, we demonstrate a simplistic machine learning approach training and deployment. We suppose that we want to run a classification of Social Network category flows based on bidirectional_packets and bidirectional_bytes as features. For the sake of brevity, we decide to predict only at flow expiration stage.

Training the model

from nfstream import NFPlugin, NFStreamer
import numpy
from sklearn.ensemble import RandomForestClassifier

df = NFStreamer(source="training_traffic.pcap").to_pandas()
X = df[["bidirectional_packets", "bidirectional_bytes"]]
y = df["application_category_name"].apply(lambda x: 1 if 'SocialNetwork' in x else 0)
model = RandomForestClassifier()
model.fit(X, y)

ML powered streamer on live traffic

class ModelPrediction(NFPlugin):
    def on_init(self, packet, flow):
        flow.udps.model_prediction = 0
    def on_expire(self, flow):
        # You can do the same in on_update entrypoint and force expiration with custom id. 
        to_predict = numpy.array([flow.bidirectional_packets,
                                  flow.bidirectional_bytes]).reshape((1,-1))
        flow.udps.model_prediction = self.my_model.predict(to_predict)

ml_streamer = NFStreamer(source="eth0", udps=ModelPrediction(my_model=model))
for flow in ml_streamer:
    print(flow.udps.model_prediction)

More NFPlugin examples and details are provided on the official documentation. You can also test NFStream without installation using our live demo notebook.

Building from sources l m

If you want to build NFStream from sources. Please read the installation guide.

Contributing

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

Ethics

NFStream is intended for network data research and forensics. Researchers and network data scientists can use these framework to build reliable datasets, train and evaluate network applied machine learning models. As with any packet monitoring tool, NFStream could potentially be misused. Do not run it on any network of which you are not the owner or the administrator.

Credits

Authors

The following people contributed to NFStream:

Supporting organizations

The following organizations are supporting NFStream:

sah tuke ntop

License

This project is licensed under the LGPLv3 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-6.2.5-pp36-pypy36_pp73-macosx_10_14_x86_64.whl (948.2 kB view details)

Uploaded PyPy macOS 10.14+ x86-64

nfstream-6.2.5-cp39-cp39-manylinux1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9

nfstream-6.2.5-cp39-cp39-macosx_10_14_x86_64.whl (948.2 kB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

nfstream-6.2.5-cp38-cp38-manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.8

nfstream-6.2.5-cp38-cp38-manylinux1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.8

nfstream-6.2.5-cp38-cp38-macosx_10_14_x86_64.whl (948.2 kB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

nfstream-6.2.5-cp37-cp37m-manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.7m

nfstream-6.2.5-cp37-cp37m-manylinux1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.7m

nfstream-6.2.5-cp37-cp37m-macosx_10_14_x86_64.whl (948.2 kB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

nfstream-6.2.5-cp36-cp36m-manylinux2014_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.6m

nfstream-6.2.5-cp36-cp36m-manylinux1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.6m

nfstream-6.2.5-cp36-cp36m-macosx_10_14_x86_64.whl (948.2 kB view details)

Uploaded CPython 3.6m macOS 10.14+ x86-64

File details

Details for the file nfstream-6.2.5-pp36-pypy36_pp73-manylinux1_x86_64.whl.

File metadata

  • Download URL: nfstream-6.2.5-pp36-pypy36_pp73-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: PyPy
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 PyPy/7.3.2

File hashes

Hashes for nfstream-6.2.5-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 98a6d1b3b42cf10b3802763179dfd8d6972d2eb34b192be1abc7ec02b1a8fe69
MD5 f6bcff9d8a5f3d441affe0a7d35da4b4
BLAKE2b-256 9027f58f3ba476a6277be470387b7ebeda03e62274ef413baf390c3ed040884a

See more details on using hashes here.

File details

Details for the file nfstream-6.2.5-pp36-pypy36_pp73-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: nfstream-6.2.5-pp36-pypy36_pp73-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 948.2 kB
  • Tags: PyPy, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 PyPy/7.3.2

File hashes

Hashes for nfstream-6.2.5-pp36-pypy36_pp73-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c385cc58648ecab1aeee9959e8b5655014a57bc6db51094816a13c12736f7b11
MD5 8fe80b3c40367872a69acb8b2ee49c6b
BLAKE2b-256 b82f15ce0ffb4f22d83b428a1885964a90204069781f21f9e608625c7bbcca59

See more details on using hashes here.

File details

Details for the file nfstream-6.2.5-cp39-cp39-manylinux1_x86_64.whl.

File metadata

  • Download URL: nfstream-6.2.5-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.9.0

File hashes

Hashes for nfstream-6.2.5-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 84d340170ffc990879d2f5f751265189abdeaec36c406206bf21c3750696c5e2
MD5 05539475188810544a3a54f86cff0607
BLAKE2b-256 e15feaa800e5260d075f624c39a3c54d58bd515373134bb6cf5c2e52baf4d431

See more details on using hashes here.

File details

Details for the file nfstream-6.2.5-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: nfstream-6.2.5-cp39-cp39-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 948.2 kB
  • Tags: CPython 3.9, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.9.0

File hashes

Hashes for nfstream-6.2.5-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ac3a0a5394ed6d0777a89e6291faec3b9f93aec0365294ecab20ac9e56e81b56
MD5 ba1fbc0daa6844a280d6a36d54db429a
BLAKE2b-256 9d0110d5c1fb941f03e78ec8151b99d92027d9a4cca8b5f33bbc73dcd92f61c9

See more details on using hashes here.

File details

Details for the file nfstream-6.2.5-cp38-cp38-manylinux2014_aarch64.whl.

File metadata

  • Download URL: nfstream-6.2.5-cp38-cp38-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.0

File hashes

Hashes for nfstream-6.2.5-cp38-cp38-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ec98ed8f188c7f098c48f6242e185022bce5cea7fb948dcd081badac13377e5c
MD5 2f5186d079865064aae79672dbe57217
BLAKE2b-256 f25c9804db3d7a751decb9c59fbe73baad0bad688dd499ff723442020831148c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.2.5-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.6

File hashes

Hashes for nfstream-6.2.5-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a5cf4336de510f8c045f5b6021b013a9e11c211d11ceab7852d8d68ad008313a
MD5 accee4e2552e79ad38747634387beef7
BLAKE2b-256 6f920c678ae5340e09568f11f6f4b03d1b32669963675a7242a992dbfab314e5

See more details on using hashes here.

File details

Details for the file nfstream-6.2.5-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: nfstream-6.2.5-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 948.2 kB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.8.6

File hashes

Hashes for nfstream-6.2.5-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e8fce6170e858669addd2d416b3f65edc9757d91c853801b5f9e5c9fc8c3e1df
MD5 2f6deebd913927231b6bdfde347080d0
BLAKE2b-256 a2017eff12dade2d1acc0983e3aa71d9aa4f46fdce9f871e5b6968f3375661ef

See more details on using hashes here.

File details

Details for the file nfstream-6.2.5-cp37-cp37m-manylinux2014_aarch64.whl.

File metadata

  • Download URL: nfstream-6.2.5-cp37-cp37m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.5

File hashes

Hashes for nfstream-6.2.5-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d9216b32558a7bd5aada08252c09e7e60dfadfbd93a098a8e3fa5bf67051b612
MD5 a88b2a9281f77887c52134fa7460a664
BLAKE2b-256 106709643869fc84a57ecde0f987cdd21c5005405a4728abe09f486904166dd4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.2.5-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.7.9

File hashes

Hashes for nfstream-6.2.5-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 842ec01fe8daf9fd712c3f4ec5ca544be819fa4360e84a16e396f6cf5f2e9505
MD5 27d3dee8fa3768cf2bc4a63591b5fc41
BLAKE2b-256 bf52a68fa6fa00ffb9d1fc026d7c9a4e6b105242bd8a78ea0912dbea47096a35

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.2.5-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 948.2 kB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.7.9

File hashes

Hashes for nfstream-6.2.5-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 7ca1b1c9c22735e6a38753919b2a1ef4ca0703d435bfa5f3a28d1a18adfde95c
MD5 64ee2345a5ca772fdfc3556ca19880f3
BLAKE2b-256 b1bc213972c2a1c94c5ec77600d790321cab6ff7e8efaa048af4421098d9291a

See more details on using hashes here.

File details

Details for the file nfstream-6.2.5-cp36-cp36m-manylinux2014_aarch64.whl.

File metadata

  • Download URL: nfstream-6.2.5-cp36-cp36m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.6.9

File hashes

Hashes for nfstream-6.2.5-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5f1a330dde0946941dbf171e8e4bf151bddf67adfc66f24ccbddfa3487e26d9f
MD5 578e48f6723721065ad128ceb38a7b23
BLAKE2b-256 06804cdd74d13dcd055392a66942675da8b79664b15ce864926de87e0feb41f8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.2.5-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.6.12

File hashes

Hashes for nfstream-6.2.5-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1b31aba14dfc851c28f7e7307814e1760346dc4f3c0b869c89273553aecc126a
MD5 c8a4fbea96d2321601bda6c18f94c772
BLAKE2b-256 d64751221327045b21dc0c953d1080fc33a0d92cdfdeaa28dbfe2b4e33d71e8f

See more details on using hashes here.

File details

Details for the file nfstream-6.2.5-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: nfstream-6.2.5-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 948.2 kB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.6.12

File hashes

Hashes for nfstream-6.2.5-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 83a1cbb6b35bc98dc2145687b7f024e6021c2c2bd352b47e583d7794bea5bf5d
MD5 61924e5e7169c60cc4c7a784411073ba
BLAKE2b-256 16b7b004c08e2ad454569c8c2a29721f2526b4ee0c4f3a3e198850ae902a9811

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