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.post14.tar.gz (669.1 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.post14-pp310-none-any.whl (973.9 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post14-pp39-none-any.whl (973.9 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post14-pp38-none-any.whl (973.9 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post14-cp313-none-any.whl (973.9 kB view details)

Uploaded CPython 3.13

pypcapkit-1.3.5.post14-cp312-none-any.whl (973.9 kB view details)

Uploaded CPython 3.12

pypcapkit-1.3.5.post14-cp311-none-any.whl (973.9 kB view details)

Uploaded CPython 3.11

pypcapkit-1.3.5.post14-cp310-none-any.whl (973.9 kB view details)

Uploaded CPython 3.10

pypcapkit-1.3.5.post14-cp39-none-any.whl (973.9 kB view details)

Uploaded CPython 3.9

File details

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

File metadata

  • Download URL: pypcapkit-1.3.5.post14.tar.gz
  • Upload date:
  • Size: 669.1 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.post14.tar.gz
Algorithm Hash digest
SHA256 2a269eec19e44ddcbc6c2ff58997b288a7d7dc8e7f8bbb39fca2e929a862f004
MD5 6343d0ad04ab476ea660cef0e47f7a0f
BLAKE2b-256 c36fd6df8be0bd53ab6a327fcdbe8cff8b7e8438455b98c99a7db3fdb22bfbe4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post14-pp310-none-any.whl
Algorithm Hash digest
SHA256 2a5186919179dc93133429c6737a20665737ccf841789c0dbb2914d9a781f852
MD5 a9784d3d2ebfd628c1da7f5d734071e2
BLAKE2b-256 ee26dcdcd0a194eccf3a2837560d197fb4a33dc7c754b804880f4ed5d8ccb22d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post14-pp39-none-any.whl
Algorithm Hash digest
SHA256 ade308dc67f50edf8b12a37eb7712ed15e4e800cce7363ddc01ed507f3540e00
MD5 3b37c3607df977c5d389a6b11c5f2552
BLAKE2b-256 6f8286a30a62f395212742d1b23941592801e718391d1287894161e5e05e5d97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post14-pp38-none-any.whl
Algorithm Hash digest
SHA256 0bf0acc60e91373f4118429c3d8ee014ba836b6f416c28adf0ca70c0e83d8e0e
MD5 650289242aeb32e80e6962a43fbd6d6e
BLAKE2b-256 51ce95bc0661e8a2937a322816564a9d022fb82de5e0f34d5158941c96c6a59c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post14-cp313-none-any.whl
Algorithm Hash digest
SHA256 5600a615dbf7155a1e983f416b6d5fbacd1ca6932e7b12159ea75b63a3dc42f8
MD5 94a6e84445315e26c34fdd51b9e02231
BLAKE2b-256 fde7dcd34d8e7618f99e5488f9aa42a91c6213d91df1f2c59a4b3ccb698aa289

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post14-cp312-none-any.whl
Algorithm Hash digest
SHA256 805f7d4ea2a8b4599e47e92fcd68aec17c21ffd07021985610d155de64b8525a
MD5 094be20a393055685d60428cfd19984e
BLAKE2b-256 3bd4d7a92cc8c778032f97e983883867e9b51a705c734da0b339b6db92ee8e02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post14-cp311-none-any.whl
Algorithm Hash digest
SHA256 392a1af166df9a7e2fa1bc4ee2fbe6226706c23acc8d967f5028b4528fa24e74
MD5 4d687bcf2f670c64c414a05ee41cd31d
BLAKE2b-256 289675fbd6f7cd251940dd536e6e870c4e34d61802c1e377ea8b7041aab1d8e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post14-cp310-none-any.whl
Algorithm Hash digest
SHA256 a38709dc6d44364c20c64c66c564d042f114288b9ca7c90c054f6d77d5b6beb4
MD5 2e27dac192244d23313e701c073f4810
BLAKE2b-256 7838629491a6a278f9b8d19779787499589764e939e27de05b792f95ad05a888

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post14-cp39-none-any.whl
Algorithm Hash digest
SHA256 3efdba766d5520c538d6a0545e25eeaa09e84c5b23ccefbca3fa93e81917b897
MD5 f2b96437864f6691451fe27d50772073
BLAKE2b-256 4bcc226ddf2e1ebfd98ebd28bd582cef8f120706d901c5ea05958aea8ac9ad02

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