Skip to main content

A Flexible Network Data Analysis Framework

Project description

NFStream Logo


NFStream is a multiplatform 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 pypy3
Project License License
Continuous Integration Linux WorkFlows MacOS WorkFlows Windows WorkFlows
Code Quality Quality Quality
Code Coverage Coverage

Table of Contents

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).
  • System visibility: NFStream probes the monitored system's kernel to obtain information on open Internet sockets and collects guaranteed ground-truth (process name, PID, etc.) at the application level.
  • 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

Windows Notes: NFStream does not include capture drivers on Windows. It is required to install Npcap drivers before installing NFStream. If Wireshark is already installed on Windows, then Npcap drivers are already installed.

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,
                         system_visibility_mode=0,
                         system_visibility_poll_ms=100,
                         system_visibility_extension_port=28314)
                         
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,
      tunnel_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='')

System visibility

NFStream probes the monitored system's kernel to obtain information on open Internet sockets and collects guaranteed ground-truth (process name, PID, etc.) at the application level.

from nfstream import NFStreamer
my_streamer = NFStreamer(source="Intel(R) Wi-Fi 6 AX200 160MHz", # Live capture mode. 
                         # Disable L7 dissection for readability purpose only.
                         n_dissections=0,
                         system_visibility_poll_ms=100,
                         system_visibility_mode=1)
                         
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=59339,
      dst_ip='184.73.244.37',
      dst_mac='98:0c:82:d3:3c:7c',
      dst_oui='98:0c:82',
      dst_port=443,
      protocol=6,
      ip_version=4,
      vlan_id=0,
      tunnel_id=0,
      bidirectional_first_seen_ms=1638966705265,
      bidirectional_last_seen_ms=1638966706999,
      bidirectional_duration_ms=1734,
      bidirectional_packets=98,
      bidirectional_bytes=424464,
      src2dst_first_seen_ms=1638966705265,
      src2dst_last_seen_ms=1638966706999,
      src2dst_duration_ms=1734,
      src2dst_packets=22,
      src2dst_bytes=2478,
      dst2src_first_seen_ms=1638966705345,
      dst2src_last_seen_ms=1638966706999,
      dst2src_duration_ms=1654,
      dst2src_packets=76,
      dst2src_bytes=421986,
      # The process that generated this reported flow. 
      system_process_pid=14596,
      system_process_name='FortniteClient-Win64-Shipping.exe')

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,
      tunnel_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 l7 dissection for readability purpose.
                         n_dissections=0,
                         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,
      tunnel_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 w

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 nmap

Publications that use NFStream

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.4.0-pp37-pypy37_pp73-macosx_10_14_x86_64.whl (1.0 MB view details)

Uploaded PyPy macOS 10.14+ x86-64

nfstream-6.4.0-pp36-pypy36_pp73-macosx_10_14_x86_64.whl (1.0 MB view details)

Uploaded PyPy macOS 10.14+ x86-64

nfstream-6.4.0-cp310-cp310-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.10 Windows x86-64

nfstream-6.4.0-cp310-cp310-manylinux1_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.10

nfstream-6.4.0-cp39-cp39-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.9 Windows x86-64

nfstream-6.4.0-cp39-cp39-manylinux1_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.9

nfstream-6.4.0-cp39-cp39-macosx_10_14_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

nfstream-6.4.0-cp38-cp38-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.8 Windows x86-64

nfstream-6.4.0-cp38-cp38-manylinux1_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.8

nfstream-6.4.0-cp38-cp38-macosx_10_14_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

nfstream-6.4.0-cp37-cp37m-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.7m Windows x86-64

nfstream-6.4.0-cp37-cp37m-manylinux1_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.7m

nfstream-6.4.0-cp37-cp37m-macosx_10_14_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

nfstream-6.4.0-cp36-cp36m-win_amd64.whl (3.7 MB view details)

Uploaded CPython 3.6m Windows x86-64

nfstream-6.4.0-cp36-cp36m-manylinux1_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.6m

nfstream-6.4.0-cp36-cp36m-macosx_10_14_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.6m macOS 10.14+ x86-64

File details

Details for the file nfstream-6.4.0-pp37-pypy37_pp73-manylinux1_x86_64.whl.

File metadata

  • Download URL: nfstream-6.4.0-pp37-pypy37_pp73-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: PyPy
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 PyPy/7.3.7

File hashes

Hashes for nfstream-6.4.0-pp37-pypy37_pp73-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5357f469a15bb2ac11ce8252abefd7fd3bdf291d319590330db73703e25a8ecd
MD5 8e3d261aaa9d50e4b743deb0c79a9749
BLAKE2b-256 efd345f3214adf729917b4ec5e9a23f3a913ba5fd8203c28d3a93f7f4d39b0f6

See more details on using hashes here.

File details

Details for the file nfstream-6.4.0-pp37-pypy37_pp73-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: nfstream-6.4.0-pp37-pypy37_pp73-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: PyPy, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 PyPy/7.3.7

File hashes

Hashes for nfstream-6.4.0-pp37-pypy37_pp73-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 ac385702d3bb88e22aae8c53f50672759a5342c27912146400e2fc3026f8f962
MD5 7e0c827fd0466611f9d982bf8147a365
BLAKE2b-256 1f3dd219b6fe2b4117d2bd8e0ae2baff40be0a31761db1a7e9a9bf85797ddeb2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-pp36-pypy36_pp73-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: PyPy
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 PyPy/7.3.3

File hashes

Hashes for nfstream-6.4.0-pp36-pypy36_pp73-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b7c3b49903c297950026deb34abdc41868412b2bdb734c78e9f12c66c15126e8
MD5 6b7f0df5d6498948ec4b8b4cb5f441ff
BLAKE2b-256 dc209f4f4b935b16df6230d1293bab4a3623b6d1e728cb2108c3513320f5c764

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-pp36-pypy36_pp73-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: PyPy, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 PyPy/7.3.3

File hashes

Hashes for nfstream-6.4.0-pp36-pypy36_pp73-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 deb6971c44964ae5855f827764cf74f892fc8edad4c9ec6b95f35a0c6177de71
MD5 1e0fe93c0ed3e7eb32a406bac365da40
BLAKE2b-256 eb68fe48cf642fd2619afddaa25606106a8bd77bde98593f765fd10a0dc59b25

See more details on using hashes here.

File details

Details for the file nfstream-6.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: nfstream-6.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for nfstream-6.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 da873a4dcd4e7f498b3e42be966817f07e05c6407899de7157cbaa25afbe173d
MD5 beba861e2692660ab7b6c99d978899d0
BLAKE2b-256 be8c377d4070e285e7c6cd2ef197913dfe736aa58977d5621a6270417284db8d

See more details on using hashes here.

File details

Details for the file nfstream-6.4.0-cp310-cp310-manylinux1_x86_64.whl.

File metadata

  • Download URL: nfstream-6.4.0-cp310-cp310-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.10
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for nfstream-6.4.0-cp310-cp310-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3015bad93bd6eda9c54a1476bf077d6bcd7ecd21e514c55ca2186e9184e891ac
MD5 2f323e4bb6bcdcdb579c4f0e7de402d7
BLAKE2b-256 e7b15973b3f0a8e429f7c86b7e2573ca0c45761dd9f9f7a9a07c2249151c2980

See more details on using hashes here.

File details

Details for the file nfstream-6.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: nfstream-6.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for nfstream-6.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4ae8eec8ade0392ca909edad92ae0850d604f8c39ce9d3c243e4e7d78ce4b54f
MD5 7a9255a877e6fd9ff96c908a738514a7
BLAKE2b-256 f4705af1c7eb27908f06e00fba04f01270aa5bace11e5d10129af1b20292c617

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for nfstream-6.4.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 bfd73d5bcc766bd552119c446943005fb0cde34f21ab2b84a4230b573f6dcb3a
MD5 51eab19fa19695471d6d215266d46fdd
BLAKE2b-256 63ae47bb1f1d842f35c25a1e8e885ec604b046b59ef3e18ae1533aa9afe10d2e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-cp39-cp39-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.9, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for nfstream-6.4.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e1a6310ef0ad7549e38d16b9a486806ae647a7cb31b253cf403556af74ac4fd1
MD5 57008dc7d10006d13993b881539bda5d
BLAKE2b-256 6ef66972501b38318284e947f44460badc187a29ebcadd27d1ff27346239e838

See more details on using hashes here.

File details

Details for the file nfstream-6.4.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: nfstream-6.4.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for nfstream-6.4.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 026827382d9d2a77638f7fc0b1947474bf8a9260ba35c77ccefb690de6f681e1
MD5 6041482a66dcbf0107e7744d40b01d97
BLAKE2b-256 c9fc0490107fbc18f87680de65b5804111eb0b6126823869cbc169c40abb078f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

File hashes

Hashes for nfstream-6.4.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2c8b759444301ff03cd2172e84d743723753fdfc9cbd6ce14a00eec511e13afe
MD5 c19d589cac856ec876f6149cd3bbed2f
BLAKE2b-256 a5cd9e72c51db23f185a47fd6bcb41105a834c3ed62a6280103bb76c49fbd596

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12

File hashes

Hashes for nfstream-6.4.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 0fe0b1259dfb69ecd105b7962d9e7d522ce2ba9f55e41792b7a40e74bb36e3a8
MD5 87b4b0ee1a1336a3dd7f7533403c9d60
BLAKE2b-256 e6bfd567ae5cb5bbed3edac5a07144649713ff0e5f218dcea7c25b542a0e2bdc

See more details on using hashes here.

File details

Details for the file nfstream-6.4.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: nfstream-6.4.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9

File hashes

Hashes for nfstream-6.4.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d770a5fadd46d07242dfca0dfff8f993343d5a6e1cd2d83e019a94d4ac5d026b
MD5 9d3f66f4ff89a5dc93748bc36706e562
BLAKE2b-256 057741b5cc77e1f7bafb60515079fb5b05c692494edba662c438107d0d5dbd40

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for nfstream-6.4.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6cf17da437a183866da637d4907768ba178b1f055462b0ea0813d397a2659abd
MD5 330d0bc1531d569bd12a632b17cfe3a6
BLAKE2b-256 fde204f66d249c874ddda2dbccff542bcd02ba94bc6b9b2f0e3411c0ff5d1e28

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for nfstream-6.4.0-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3139fb87d3693a17ea52b65a817d582cbda0b3090ad56f6772842e65d4d1dab4
MD5 50e16b9fa336ba8c54d1397c56f31282
BLAKE2b-256 a3beca611d036a3cac9c48805f18dc9cab8f42fb6eb3acea80374b6be761d28c

See more details on using hashes here.

File details

Details for the file nfstream-6.4.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: nfstream-6.4.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.8

File hashes

Hashes for nfstream-6.4.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 22c09795ee49dc3e7c73a5418f2f6ccd2d7fd01a82065fccec9184ef19b0f316
MD5 b6d4ae50d6803487d1aec3eae45077ff
BLAKE2b-256 5f39a594d5b3ab7c28fb03f0f6c74756b5aaac145d0bc312f4dce905168c86ed

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for nfstream-6.4.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6dc387f493bb5829076aaeb784ea6bbf95627f9e73da7dba1d369b7ccecb82a8
MD5 5fcdf7db620bc04eae068d47e559cfc0
BLAKE2b-256 b968c354ff3f08b69ec54808eb44e279b82db7999ec652d10f06c211b52bae83

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nfstream-6.4.0-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.15

File hashes

Hashes for nfstream-6.4.0-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 398912eb0e88833211c768090fca13a0177557dc026b6b3970a15f7e8ec01377
MD5 588fec9908130ca11d5ddfb462b2b2b0
BLAKE2b-256 d62b3da6ab81656a9f880cb9f63903ae6c7715d11a6499f5f78b9c117cd7807a

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