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.post30.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.post30-pp310-none-any.whl (973.7 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post30-pp39-none-any.whl (973.7 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post30-pp38-none-any.whl (973.7 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post30-cp313-none-any.whl (973.7 kB view details)

Uploaded CPython 3.13

pypcapkit-1.3.5.post30-cp312-none-any.whl (973.7 kB view details)

Uploaded CPython 3.12

pypcapkit-1.3.5.post30-cp311-none-any.whl (973.7 kB view details)

Uploaded CPython 3.11

pypcapkit-1.3.5.post30-cp310-none-any.whl (973.7 kB view details)

Uploaded CPython 3.10

pypcapkit-1.3.5.post30-cp39-none-any.whl (973.7 kB view details)

Uploaded CPython 3.9

File details

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

File metadata

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

File hashes

Hashes for pypcapkit-1.3.5.post30.tar.gz
Algorithm Hash digest
SHA256 051b1a2ff51518fd43c3ff10c11798ca466559dcb4bee35ab6f9295126a3a6d9
MD5 89f41569e4da430a4e2dc4bb6e8fb6ec
BLAKE2b-256 8bb15cafb11ee35d159f859dac0d294d48608f64dee7e4fa7e16cf1ce9d6b654

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post30-pp310-none-any.whl
Algorithm Hash digest
SHA256 f955283bc76d2ddfccafbb23ee2a5f3af77173a43924f6362ef06cd9f1a35b67
MD5 a02ab1f849f30fd25524a092220a9d4d
BLAKE2b-256 1a8ae4a2c6e5d9da15712e104bec962e19d6fbb0c51ed26d7c759e561718563e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post30-pp39-none-any.whl
Algorithm Hash digest
SHA256 c98295069e139bf87fbd2832dd8a043ab3df9e9cacc24e07a68b97a68b5e1f02
MD5 ae67c9d5c2801d89b5d286df39634984
BLAKE2b-256 1abd9dfdc1c63d62e46f71bebe901760b0bd1f150a8de08cd1395f5b0df6503c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post30-pp38-none-any.whl
Algorithm Hash digest
SHA256 a81d9a6b1319e51edfd3b6e4f0e7096515bb4bf8c12c3342acc5a708c1a87705
MD5 11e86f8339a31d107e6dc9c0dac5425d
BLAKE2b-256 d5251ab14d9a4da9abcf21e80befebe68f73b4526ac4a00a44eb2c53f0562a33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post30-cp313-none-any.whl
Algorithm Hash digest
SHA256 ece44c72da80778375ab004db3645514f5da67e6a64f29e07e83a26aa0e4a2bc
MD5 1ed845c37bad57efca39166db3795720
BLAKE2b-256 94e05cab042d977c3b70fca6275aa1ba59e274ca5ebac535f35a6be46955b82c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post30-cp312-none-any.whl
Algorithm Hash digest
SHA256 f4ddca98cad302e851559f7b2854e22be04256e7a291e0a6b79b678f9c964bc9
MD5 9afc48963dca2e0fd4b0eddc6962b88e
BLAKE2b-256 16c6da873ba27985c47801b6ac677bf57aebd0a65139cabc9b4ae806d50d7965

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post30-cp311-none-any.whl
Algorithm Hash digest
SHA256 8a79ed2081bb46c139ede6cbd1ab78f759c2a3abd28ca3aefcc7e405e318756e
MD5 c513acc8b420c90d7b690511cbb75328
BLAKE2b-256 1057e59beec571676c76f299840efca1ce71b35dce8f88c4af7e7d72cc35ef2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post30-cp310-none-any.whl
Algorithm Hash digest
SHA256 f511d1738a38490946ed8ce078db33ac7973c495ae6af070e017ea3b8b659954
MD5 cb531d599ca940406adc56e2de795aa3
BLAKE2b-256 f37aae7f76849ba361407f87723fe07e250e92acfbde68199337a770a1ada8e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post30-cp39-none-any.whl
Algorithm Hash digest
SHA256 837a0a58cbe21a43b3ab0727a3bb2360274cf0a37d8ae76e2bd3fa66f696ddb4
MD5 f1a77a67894d1a572f0225d8ec086675
BLAKE2b-256 4607e1f35fc83347b8ecac9b1dae39cfe6a4e3d550be77d435c3297553d43f4f

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