Skip to main content

PyPCAPKit: comprehensive network packet analysis library

Project description

For any technical and/or maintenance information, please kindly refer to the Official Documentation.

The PyPCAPKit project is an open source Python program focus on network packet parsing and analysis, which works as a comprehensive PCAP file extraction, construction and analysis library.

The whole project supports Python 3.6 or later.

About

PyPCAPKit is a comprehensive Python-native network packet analysis library, with DictDumper as its formatted output dumper.

Unlike popular PCAP file extractors, such as Scapy, DPKT, PyShark, and etc, pcapkit is designed to be much more comprehensive, which means it is able to provide more detailed information about the packet, as well as a more Pythonic interface for users to interact with.

Module Structure

In pcapkit, all files can be described as following eight parts.

  • Interface (pcapkit.interface)

    User interface for the pcapkit library, which standardises and simplifies the usage of this library.

  • Foundation (pcapkit.foundation)

    Synthesises file I/O and protocol analysis, coordinates information exchange in all network layers, as well as provides the foundamental functions for pcapkit.

  • Protocols (pcapkit.protocols)

    Collection of all protocol family, with detailed implementation and methods.

  • Utilities (pcapkit.utilities)

    Auxiliary functions and tools for pcapkit.

  • CoreKit (pcapkit.corekit)

    Core utilities for pcapkit implementation, mainly for internal data structure and processing.

  • ToolKit (pcapkit.toolkit)

    Auxiliary tools for pcapkit to support the multiple extraction engines with a unified interface.

  • DumpKit (pcapkit.dumpkit)

    File output formatters for pcapkit.

  • Constants (pcapkit.const)

    Constant enumerations used in pcapkit for protocol family extraction and representation.

Engine Comparison

Due to the general overhead of pcapkit, its extraction procedure takes around 0.2 milliseconds per packet, which is already impressive but not enough comparing to other popular extration engines availbale on the market, given the fact that pcapkit is a comprehensive packet processing module.

Additionally, pcapkit introduced alternative extractionengines to accelerate this procedure. By now pcapkit supports Scapy, DPKT, and PyShark.

Test Environment

Operating System

macOS Ventura 13.4.1

Chip

Apple M2 Pro

Memory

16 GB

Test Results

Engine

Performance (ms per packet)

dpkt

0.010390_056723

scapy

0.091690_233567

pcapkit

0.200390_390390

pyshark

24.682185_018351

Installation

Simply run the following to install the current version from PyPI:

pip install pypcapkit

Or install the latest version from the gi repository:

git clone https://github.com/JarryShaw/PyPCAPKit.git
cd pypcapkit
pip install -e .
# and to update at any time
git pull

And since pcapkit supports various extraction engines, and extensive plug-in functions, you may want to install the optional ones:

# for DPKT only
pip install pypcapkit[DPKT]
# for Scapy only
pip install pypcapkit[Scapy]
# for PyShark only
pip install pypcapkit[PyShark]
# and to install all the optional packages
pip install pypcapkit[all]
# or to do this explicitly
pip install pypcapkit dpkt scapy pyshark

For CLI usage, you will need to install the optional packages:

pip install pypcapkit[cli]
# or explicitly...
pip install pypcapkit emoji

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

pypcapkit-1.3.5.post24.tar.gz (669.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pypcapkit-1.3.5.post24-pp310-none-any.whl (973.6 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post24-pp39-none-any.whl (973.6 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post24-pp38-none-any.whl (973.6 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post24-cp313-none-any.whl (973.6 kB view details)

Uploaded CPython 3.13

pypcapkit-1.3.5.post24-cp312-none-any.whl (973.6 kB view details)

Uploaded CPython 3.12

pypcapkit-1.3.5.post24-cp311-none-any.whl (973.6 kB view details)

Uploaded CPython 3.11

pypcapkit-1.3.5.post24-cp310-none-any.whl (973.6 kB view details)

Uploaded CPython 3.10

pypcapkit-1.3.5.post24-cp39-none-any.whl (973.6 kB view details)

Uploaded CPython 3.9

File details

Details for the file pypcapkit-1.3.5.post24.tar.gz.

File metadata

  • Download URL: pypcapkit-1.3.5.post24.tar.gz
  • Upload date:
  • Size: 669.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pypcapkit-1.3.5.post24.tar.gz
Algorithm Hash digest
SHA256 84abf26c0dad8db9182b335f6aa9bd435ea718779769a3b8e5df9ea3b75fb5bc
MD5 401c327d305169811206c8da62e9681a
BLAKE2b-256 06b039c9bec2fa91a15979fa6d14ab43545ef3bb9ced6e3a878fb83f8137842c

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post24-pp310-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post24-pp310-none-any.whl
Algorithm Hash digest
SHA256 3c2bb92eb508fb3ea8b6bb2539ef77fa0c27352967d877131eb62a290baaf697
MD5 17835188cfdcd5988eb26cf7e72f168f
BLAKE2b-256 a6f55d2a0985e299e5be5535664d1e49822081ddd3fa5e80a694183cf6a209d1

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post24-pp39-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post24-pp39-none-any.whl
Algorithm Hash digest
SHA256 8587452dd76856ed6932718aaf313efc44e256de282719f90ad74ee1003394a4
MD5 a0af31cc1d8a96d2055b5cdd0ec319a1
BLAKE2b-256 37132cb7c121c44f4d1c2e82fa1d56aaf0f7bf899e3253aa0a0ee62e713ea3a9

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post24-pp38-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post24-pp38-none-any.whl
Algorithm Hash digest
SHA256 d37f36b01fff82821e0e8591490ea7496c89269b872656f1c0e16d2f07ecf295
MD5 59f7dd243514c0840b9ecddc966108ea
BLAKE2b-256 18097f4c7a00b3a8931b28012f6e8199804529726e7dd949b44334115f1ce896

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post24-cp313-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post24-cp313-none-any.whl
Algorithm Hash digest
SHA256 85d51b71c0ee9b54ddbd2addc2b67606b7fa4443c248b59096522a377cb49da7
MD5 5c4cce17f10c44c1b23dcd697bab6c97
BLAKE2b-256 6fe8538a811f2cb02f62c9d9003ad37393be4da7cbe2fb0db2e56eac624d9f46

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post24-cp312-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post24-cp312-none-any.whl
Algorithm Hash digest
SHA256 c119ebb52a427eb1a6b1ce41cdb04f012bea93c1922f1c69f2582119f5fc9f02
MD5 616f23aaf1a8202c011dff3e67bbf15a
BLAKE2b-256 bba0562f45bcc74a5313d5b44e5732b7a497adcfba6320edf5bbc12d8c0d190d

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post24-cp311-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post24-cp311-none-any.whl
Algorithm Hash digest
SHA256 3b1059636f1ce6e3ae0136a06e224366587f13f50df9bca0896c1adc92b710b9
MD5 10368343a2428c1ceac46eea608830b6
BLAKE2b-256 71564ac422ef3ad960d9959e72a18bccb53139fad9de3901eb63826f1692fc76

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post24-cp310-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post24-cp310-none-any.whl
Algorithm Hash digest
SHA256 2e0c762be2c6f98f1cbdbe7b74cec0b29eb4d5c3490e1927385eeef194ded6ec
MD5 13ff6bcedd932885265c1bbe668de388
BLAKE2b-256 f97eff985ed39e8ed0146e22c3ba3d80f8ed2c1852f06be3b44606079bc0e96e

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post24-cp39-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post24-cp39-none-any.whl
Algorithm Hash digest
SHA256 4fb98332f75f96b11ebf1ca653feaed0b8273f60516cb1e4aa2c2dc35c5d788d
MD5 3b75896c26d48764f0aa102f4853ca81
BLAKE2b-256 195dc785a96923ff555886191b2399256b4f891a85886d7aa596b8322b904628

See more details on using hashes here.

Supported by

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