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.post27.tar.gz (668.9 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.post27-pp39-none-any.whl (973.6 kB view details)

Uploaded PyPy

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

Uploaded CPython 3.13

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

Uploaded CPython 3.12

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

Uploaded CPython 3.10

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

Uploaded CPython 3.9

File details

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

File metadata

  • Download URL: pypcapkit-1.3.5.post27.tar.gz
  • Upload date:
  • Size: 668.9 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.post27.tar.gz
Algorithm Hash digest
SHA256 f11a7b6a4e46c2fe6cb2c5fae6ad137a167eebe0766d6d3a059d771b45afba1c
MD5 b5da49ec9ece180e30a2d8d06577c4ca
BLAKE2b-256 63486e5f8642584caa10ee6cc9dfc41d96cab409398d63ea045c5a4cfe010d16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post27-pp39-none-any.whl
Algorithm Hash digest
SHA256 82468414bfcaff08fe41162dd1286eb66e7f371a7641453ec94a212880fbdcf2
MD5 5d6ebd414d7b574428ab2062491028b7
BLAKE2b-256 eb7d849028011de910116af6448dc1fbceb4fccbe9575e7660ba79b21ce7aeac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post27-cp313-none-any.whl
Algorithm Hash digest
SHA256 31b36860bf8d9c947ea27a02553757ab66319088e13e6a03e84b64e6d0e7d257
MD5 16fdd2629ef13d5cdae687dc901c6145
BLAKE2b-256 baafcce5dccc0eae1d47905998ec7be2700722b30d6aeb1d81ba78e31253595f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post27-cp312-none-any.whl
Algorithm Hash digest
SHA256 f0df16b53831197f951ddbec37564b7ae5eeb174988fed8c133772a0e574e51d
MD5 14698d0c7adebce494f60a21f9118eeb
BLAKE2b-256 46dd8a4b58011ce026b8132cd29afcd31632772a3e396335c242a11fca2764f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post27-cp310-none-any.whl
Algorithm Hash digest
SHA256 0a23f93c69aaaf77052cef581dd02c9df58f3838bd5fbc2aa26daf9c1a2418b2
MD5 8e62d7f4fdb7da850f3d1ae42c57f922
BLAKE2b-256 d01cd4e6ca32f72fc4c47e3b47b67a141b7d8dc6c977c09f31b5812b6c70c32c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post27-cp39-none-any.whl
Algorithm Hash digest
SHA256 bcf8810e03f78c5c768299fc47ea0ba70fee3e43ca8cf1ce78c6b28e0bd4eb48
MD5 443f3e614a01af2ca2f7bc3c2a1f4bda
BLAKE2b-256 db286c95a655885e00cf35fcb04498d109c9baf802768d25d7c3c2e5abfcec17

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