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

Uploaded PyPy

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

Uploaded PyPy

pypcapkit-1.3.5.post35-pp38-none-any.whl (973.8 kB view details)

Uploaded PyPy

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

Uploaded CPython 3.13

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

Uploaded CPython 3.12

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

Uploaded CPython 3.11

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

Uploaded CPython 3.10

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

Uploaded CPython 3.9

File details

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

File metadata

  • Download URL: pypcapkit-1.3.5.post35.tar.gz
  • Upload date:
  • Size: 669.2 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.post35.tar.gz
Algorithm Hash digest
SHA256 8e2375a4a27c1fda14f3a605920e6f134b919b154b9b602748507f4acba8c730
MD5 dbe173003947186e5b515f3d661f6f9c
BLAKE2b-256 663b81f68fc9aff009be03a9a1628b30da175a962d650100859c285f1c139e50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post35-pp310-none-any.whl
Algorithm Hash digest
SHA256 61b1dec861fc0e49af4bd8072c5592e6b6ff43c1f50297459b07cef134db3f4e
MD5 0998a5e3f18fa0324cbdd25c93623105
BLAKE2b-256 46e4ecd59a6a0f6e9c853d9d379b6e8f2c8d8bcedf6c5a4ba99a2442e527c0bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post35-pp39-none-any.whl
Algorithm Hash digest
SHA256 6d9d113e4c58793d73c4a27e6951c078fe2e5e8a0026a81d2b74cb31ed48bb23
MD5 95b2560a13d8c3b0cdffa0261723f29c
BLAKE2b-256 1753a52f8c1e23c77ebc2a04e3d219e180d07026f3851708d8ecdbfd130ccd99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post35-pp38-none-any.whl
Algorithm Hash digest
SHA256 ba5b17d2f6d0ea922d91fce67b732597c4d7e8abaf171b105994cf6b2e0a23c6
MD5 aedea6c465a0fb436e7a61756cd8c102
BLAKE2b-256 d64b0dac82bfe44f9570f7b3a290d7a7f1ea8d5f1966624c25b773d925fd6549

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post35-cp313-none-any.whl
Algorithm Hash digest
SHA256 9c51e120b37a802dbc60aad715f12cc3a70e28bb6f2a2588316e652dfdc8b317
MD5 e9d0ae524997ef30e051d3850bb46923
BLAKE2b-256 69251de8fe37ba955e426c1c6e7ecffe9266262fddf7aace323f6639dcf58d8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post35-cp312-none-any.whl
Algorithm Hash digest
SHA256 ee389d386ad9fbe3cce15508917c63b21b1d3d3757a1642fa05a199dc5fd13a3
MD5 a9ee5e3587d907f3164bbab18dd6705f
BLAKE2b-256 5f5ff89641708cf8f8eeec80245d7bd364124f0a3f05faa0921f9b838387fc0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post35-cp311-none-any.whl
Algorithm Hash digest
SHA256 2e1ac5c96f44830dee2d3055431853a256ab60faa487e4c75b37ffa5f884ae4a
MD5 c08636891b2b605fbd1ea64799f5b6be
BLAKE2b-256 c73ccbff6210d49b14aefef9428f53a502a4d7b6df2fde49f76ba245711a6a3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post35-cp310-none-any.whl
Algorithm Hash digest
SHA256 2a15f503e70e617bd6c00c310970e07c3a163c62ec38ac4f3436773051e4ff52
MD5 32a091b293c65f3aad75dcaad99dac7e
BLAKE2b-256 9ed7efb175ef905c6c6f9641267afad352010c90c74af355621bedf30e8fe515

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post35-cp39-none-any.whl
Algorithm Hash digest
SHA256 4b762a92acec77feb9e6a3315a76ccedbc57995b3a767a99cfaa9b57286ccb64
MD5 d567bb80fd4b6cc34e6026fcf5dbdf6c
BLAKE2b-256 c956d7a6ef6b023ada1a47d42819c79ae43cd8e407de23c745d9e78b5344c9dc

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