Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

PyPCAPKit -- Comprehensive Network Packet Analysis Library

For technical and maintenance information, see the Official Documentation.

PyPCAPKit is an open-source Python library for parsing, constructing and analysing network packets and PCAP files, with DictDumper as its formatted output dumper.

Unlike popular PCAP extractors such as Scapy, DPKT and PyShark, pcapkit reports more detail about each packet through a more Pythonic interface. Where that depth is not needed, the same interface also drives six third-party extraction engines.

The whole project supports Python 3.6 or later.

Installation

pip install pypcapkit

Or from a clone, for the latest version and for development:

git clone https://github.com/JarryShaw/PyPCAPKit.git
cd PyPCAPKit
pip install -e .

The extraction engines and plug-ins are optional extras:

pip install pypcapkit[DPKT]         # or Scapy, PyShark, PyPCAPFile, PyPCAP, PCAP_CT
pip install pypcapkit[crypto]       # ESP payload decryption
pip install pypcapkit[cli]          # command line interface
pip install pypcapkit[all]          # core addons only: cli + crypto + NGAP (pycrate)

Engines are on demand; all bundles only the core addons the library needs for full functionality. Four engines also need something beyond pip install -- a tshark binary, a C compiler, libpcap headers, or an older interpreter -- and pypcap/pcap-ct must never be installed together. The installation guide gives each constraint and its reason. pcapkit enforces them in code: asking for an engine that cannot run in the current environment warns with the cause and falls back to its own parser.

Usage

>>> import pcapkit
>>> extraction = pcapkit.extract('in.pcap', nofile=True)
>>> len(extraction.frame)
6
>>> frame = extraction.frame[0]
>>> str(frame.protochain)
'Ethernet:IPv6:IPv6_ICMP'
>>> frame.info.time
datetime.datetime(2017, 11, 19, 15, 49, 5, 471719, tzinfo=datetime.timezone.utc)
>>> frame.payload.payload.src
IPv6Address('fe80::a6:87f9:2793:16ee')

The output is from the committed examples/captures/in.pcap, so it is reproducible from a clone.

Reassembly, TCP flow tracing and the engine are keyword arguments to the same call:

>>> scapy = pcapkit.extract('in.pcap', nofile=True, engine='scapy')
>>> reasm = pcapkit.extract('in.pcap', nofile=True, reassembly=True, ipv6=True)
>>> flows = pcapkit.extract('in.pcap', nofile=True, trace=True, tcp=True)
>>> len(flows.trace)
3

More examples, including the command line interface, are in How to ....

Documentation

The official documentation is the reference. Pages worth knowing by name:

Page What is in it
API reference Every module, protocol and constant
Module structure What each of the nine subpackages is for
Engine comparison Which engines exist, which Python versions they run on, and measured speed per packet
Engine support What each engine does not support, and how the gap is surfaced
Installation Extras, engine prerequisites and the local development setup
Testing Running the suite, and the sample captures it needs
How to ... Worked examples, library and CLI
Extensions Registering your own protocols, engines and dumpers

Release history is in CHANGELOG.md, and contribution guidelines are in CONTRIBUTING.md.

Metadata

Release files for pypcapkit 1.5.0b9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypcapkit 1.5.0b9
File Size Uploaded
pypcapkit-1.5.0b9.tar.gz 3.6 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pypcapkit 1.5.0b9
File
pypcapkit-1.5.0b9-pp311-none-any.whl PyPy 3.11 none any Details
pypcapkit-1.5.0b9-pp310-none-any.whl PyPy 3.10 none any Details
pypcapkit-1.5.0b9-cp315-none-any.whl CPython 3.15 none any Details
pypcapkit-1.5.0b9-cp314-none-any.whl CPython 3.14 none any Details
pypcapkit-1.5.0b9-cp313-none-any.whl CPython 3.13 none any Details
pypcapkit-1.5.0b9-cp312-none-any.whl CPython 3.12 none any Details
pypcapkit-1.5.0b9-cp311-none-any.whl CPython 3.11 none any Details
pypcapkit-1.5.0b9-cp310-none-any.whl CPython 3.10 none any Details

Total release size: 18.1 MB

Release files / pypcapkit-1.5.0b9.tar.gz

Download URL pypcapkit-1.5.0b9.tar.gz
Size 3.6 MB
Tags Source
SHA-256 checksum
How to use checksums
6cd50625c36751026e8f3ebe657ad1949980f7d1c755fb87d5dd623bd2ee32f0
BLAKE2b-256 checksum
How to use checksums
d74f9f6ec00f07a11990f4f49af228061191936948e6c0c4d663ef464bacb6e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pypcapkit-1.5.0b9-pp311-none-any.whl

Download URL pypcapkit-1.5.0b9-pp311-none-any.whl
Size 1.8 MB
Tags PyPy 3.11
SHA-256 checksum
How to use checksums
ecd394a4fd9c70abf3d46a2bf90f94df10ca5585327ef54a6f0fcbe773a482e4
BLAKE2b-256 checksum
How to use checksums
b0f3aff3e5fafa9008b11348e2119217ca68b28cc21bd4442bcb36971e34ff26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pypcapkit-1.5.0b9-pp310-none-any.whl

Download URL pypcapkit-1.5.0b9-pp310-none-any.whl
Size 1.8 MB
Tags PyPy 3.10
SHA-256 checksum
How to use checksums
8b11b2228af4b29570ba002828f3db7dc65f8833217c91baa7aec7e3d4606468
BLAKE2b-256 checksum
How to use checksums
e32ab391dcfa2b7fe3a377eae5d8b546a9669a5b348b44a6e56f22b31bcf64cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pypcapkit-1.5.0b9-cp315-none-any.whl

Download URL pypcapkit-1.5.0b9-cp315-none-any.whl
Size 1.8 MB
Tags CPython 3.15
SHA-256 checksum
How to use checksums
1b1b2b56b1d80324c7dacee22c77b4907e7d089b715fc2284dbc3bfa8ca90ab6
BLAKE2b-256 checksum
How to use checksums
ca34a288e7bc2d5e2609472a4588b2de8a0a5a4909f226d526d5d36f9ac35ff3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pypcapkit-1.5.0b9-cp314-none-any.whl

Download URL pypcapkit-1.5.0b9-cp314-none-any.whl
Size 1.8 MB
Tags CPython 3.14
SHA-256 checksum
How to use checksums
225a6658396acf48273eae3bc687f8c3a752785d6503aaf22d19ae99f5470481
BLAKE2b-256 checksum
How to use checksums
96609c3ad89ecab9ae99bedb7a4119d72684f2e83f0ab7c82be74e76c5f859aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pypcapkit-1.5.0b9-cp313-none-any.whl

Download URL pypcapkit-1.5.0b9-cp313-none-any.whl
Size 1.8 MB
Tags CPython 3.13
SHA-256 checksum
How to use checksums
8c4ba399523c766d1f815c5364e458568527f1c22f5536de457dae1427ed7236
BLAKE2b-256 checksum
How to use checksums
4eb8182f569604591e1bcc7d396410fff27ae70dd96d98b3ddf23c01aef3733e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pypcapkit-1.5.0b9-cp312-none-any.whl

Download URL pypcapkit-1.5.0b9-cp312-none-any.whl
Size 1.8 MB
Tags CPython 3.12
SHA-256 checksum
How to use checksums
a18870e3017498eb135ca72c78df1aa54077a3fe3031a4362076fc38b75ea747
BLAKE2b-256 checksum
How to use checksums
0f9feeaf237c72b44ee6de824cb0657e9eaa8bb5ab5aaf447abbe8ae9a44a0e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pypcapkit-1.5.0b9-cp311-none-any.whl

Download URL pypcapkit-1.5.0b9-cp311-none-any.whl
Size 1.8 MB
Tags CPython 3.11
SHA-256 checksum
How to use checksums
398136d95fbec7d6d245b5d9a172ea0c69717b0e7dce696897f51421c254cd9f
BLAKE2b-256 checksum
How to use checksums
ac3fa4b7ebdebc890bf502504c4957867b22f5435ef6c39af24bb0b2a6c08eb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pypcapkit-1.5.0b9-cp310-none-any.whl

Download URL pypcapkit-1.5.0b9-cp310-none-any.whl
Size 1.8 MB
Tags CPython 3.10
SHA-256 checksum
How to use checksums
2178c1ccdf171e626ddd14ec072c19b63b530a319ab71478b136f2557d0b732c
BLAKE2b-256 checksum
How to use checksums
9cb5f36c9437f5f5573fdc5cedeedf1040f02ba2e53de791154808036a88345b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

1.5.0b9 This release

9 release files

1.4.1

8 release files

1.4.0

8 release files

1.3.5

8 release files

1.3.4

9 release files

1.3.3

7 release files

1.3.1

6 release files

1.3.0

7 release files

1.2.2

6 release files

1.2.1

7 release files

1.2.0

7 release files

1.1.1

7 release files

1.1.0

7 release files

1.0.3

6 release files

1.0.2

5 release files

1.0.1

2 release files

1.0.0

2 release files

0.16.2

1 release file

0.16.1

1 release file

0.16.0

1 release file

0.15.5

2 release files

0.15.4

2 release files

0.15.3

2 release files

0.15.2

2 release files

0.15.1

2 release files

0.12.9

3 release files

0.12.8

3 release files

0.12.7

3 release files

0.12.6

3 release files

0.12.5

2 release files

0.12.2

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.10

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page