Changelog¶
All notable changes to PyPCAPKit are recorded here.
Note
Versions before 1.5.0 are reconstructed from the git history, so they summarise each release rather than enumerate every change. The record starts at 0.13.0 (2018-12-08); the earlier 0.x releases are not covered.
Note
Post-releases (X.Y.Z.postN) are, from 1.0.1 onwards, automated
publications of the weekly registry refresh: a bot regenerates the vendor
constant enumerations under pcapkit.const from their upstream registries
and bumps the version. They carry no library changes and are collapsed into
one line per release below; one that did carry something real is called out.
Releases are listed newest first. CHANGELOG.md at the repository root
carries only the version being released.
1.6.1 (2026-11-05) – A documentation release: vertical diagrams, new ones for the dispatch, extraction and reassembly paths, and a concision and accuracy sweep. Full changelog.
1.6.0 (2026-11-05) – Protocol pairs on a shared abstract base, dissectors for IGMP and DCCP, one package per protocol, and verified checksums. Full changelog.
1.5.1 (2026-10-30) – Fixed a double-escaping regression:
dictdumper0.8.5 fixed defectspcapkit.dumpkit.commonhad its own workarounds for, so the two stacked. Full changelog.1.5.0 (2026-10-29) – The largest release since 1.0, and the first recorded here as it happened rather than reconstructed: more extraction engines, ESP with payload decryption, SCTP and NGAP over SCTP, and a logger that no longer hijacks the consumer’s. Full changelog.
1.4.1 (2026-08-22) – Release engineering only – no library behaviour changed: a new unit-test CI workflow gates the packaging, vendor-cron and documentation workflows, the vendor cron refuses to publish when the registry update itself failed, and unit-test compatibility on Python 3.10 was fixed. Full changelog.
1.4.0 (2026-08-21) – The first release in nearly two years to carry code changes, and the first with a test suite, covering the core kit, the extraction engines, reassembly, flow tracing, the protocol schemas, the CLI and the utility modules. Full changelog.
1.3.5 (2024-11-16) – Fixed a regression, introduced by 1.3.4, that mis-decoded every TCP and UDP frame under IPv4/IPv6 as raw payload – skip 1.3.4 entirely. Full changelog.
1.3.4 (2024-11-14) – Fixed IPv6 Routing header length handling and extension-header chain extraction (#218), but introduced the transport-layer regression fixed in 1.3.5 – upgrade past this version rather than to it. Full changelog.
1.3.3 (2024-11-03) – Fixed PCAP reading from the CLI and library (#240) and a source install broken by
setup.py(#221); 1.3.2 was never released. Full changelog.1.3.1 (2023-12-21) – Renamed
register_port()toregister_apptype()with no alias left behind, and revised the documentation acrosspcapkit.protocols,pcapkit.corekitandpcapkit.dumpkit;1.3.1.post8fixed PCAP output during flow tracing (#180). Full changelog.1.3.0 (2023-10-04) – A redesign of the extension points onto metaclasses, adding
ModuleDescriptorso a registry entry can name a module and class imported lazily on first use. Full changelog.1.2.2 (2023-09-14) – Fixed extraction failing outright (#166). Full changelog.
1.2.1 (2023-08-27) – Fixed bugs in
SeekableReaderintroduced one day earlier in 1.2.0. Full changelog.1.2.0 (2023-08-26) – Added streaming input through
SeekableReader, so a capture can be read fromstdinor a pipe (#156). Full changelog.1.1.1 (2023-08-15) – Fixed reassembly, broken since 1.0.0 (#155),
AppTypeenumeration lookups,typing.TypeAliascompatibility on older interpreters, the flow-tracing output file name, andSchemadumping through a custom dumper. Full changelog.1.1.0 (2023-07-09) – Rebuilt the schema and field classes on metaclasses, with
EnumSchemafor enum-dispatched schemas, and revised the IPv4, HOPOPT, IPv6-Opts, IPv6-Route, HIP, MH, TCP, HTTP/2 and PCAP-NG schemas onto them. Full changelog.1.0.3 (2023-06-29) – Added the IANA service-name and port registry as the
AppTypeenumeration [RFC 6335], wiring TCP and UDP parsing to resolve ports to service names. Full changelog.1.0.2 (2023-06-05) – Added Mobility Header parsing and construction [RFC 6275], and fixed
pcapkit.extractfailing on interpreters wheredecimal.localcontexttakes no keyword arguments (#139). Full changelog.1.0.1 (2023-05-14) – Changed
InfoandSchemasubclasses to finalise at class creation rather than on each instantiation, a straight runtime saving on parsing. Full changelog.1.0.0 (2023-05-09) – The 1.0 rewrite: parsing and construction became one declarative schema and field definition per protocol, the extraction backend became pluggable (with PCAP-NG support and the DPKT, Scapy and PyShark engines), and roughly 55,000 lines added and 15,000 removed across 617 files. Full changelog.
0.16.3 (2022-10-31) – Fixed import crashes on some interpreters (#114, #116), the reassembly property caches, and README rendering for PyPI; the build chain was revised. Full changelog.
0.16.2 (2022-08-03) – Fixed
Info__init__generation for classes without annotations (#113), and the IP reassembly algorithm (#82). Full changelog.0.16.1 (2022-06-07) – Changed warnings to raise through
pcapkit.utilities.warningsinstead ofwarnings.warndirectly, and warn on a missing optional CLI or vendor dependency too. Full changelog.0.16.0 (2022-05-31) – A project-wide revision and the last release of the pre-1.0 design: type annotations and linter compliance throughout, protocol classes separated from their data models, and
pcapkit.foundation.registryfor subscribing protocols by name. Full changelog.0.15.5 (2020-10-11) – Added a fallback encoder so
DictDumperno longer raises on data it cannot encode (#65). Full changelog.0.15.4 (2020-08-28) – Fixed the missing
stacklevelattribute onpcapkit.utilities(#58); Travis CI was set up. Full changelog.0.15.3 (2020-08-17) – Fixed ARP parsing (#55), and added logging through a
pcapkitlogger. Full changelog.0.15.2 (2020-06-27) – Added a register interface on the protocol classes and on
pcapkit.foundation.analysis, so both extend without patching the library, and fixed flow-tracing output consistency. Full changelog.0.15.1 (2020-06-18) – Maintenance release: revised the constant enumerations and the vendor crawlers that generate them. Full changelog.
0.15.0 (2020-06-07) – Merged the parsing and construction logic so a protocol is no longer implemented twice, added full API documentation, and fixed the
DictDumperdependency (#37, #40). Full changelog.0.14.5 (2019-10-24) – Added a CLI for the vendor crawlers, and deferred vendor imports so the crawler dependencies are not needed just to import
pcapkit. Full changelog.0.14.4 (2019-09-01) – Shipped the vendor crawler scripts in the distribution, and split the CLI and vendor dependencies into separate
setup.pyextras. Full changelog.0.14.3 (2019-08-08) – Fixed reported bugs (#29, #30) and a Wikipedia block that broke a vendor crawler; the constant enumerations and sample output were regenerated. Full changelog.
0.14.2 (2019-03-28) – Fixed the exception classes and the TCP reassembly algorithm. Full changelog.
0.14.1 (2019-03-07) – Added the
PCAPKIT_DEVMODEenvironment variable, turning on development-mode behaviour without a code change. Full changelog.0.14.0 (2019-03-02) – Changed the TCP reassembly pipeline to handle the RST flag, and added Docker build files. Full changelog.
0.13.3 (2019-02-26) – Fixed numeric literals in the constant modules incompatible with Python 3.5. Full changelog.
0.13.2 (2019-01-24) – Maintenance release: updated the
tbtrimdependency. Full changelog.0.13.1 (2019-01-23) – Added
tbtrimto trimpcapkit’s own frames out of tracebacks through a customexcepthook, and fixed compatibility issues via a newpcapkit.utilities.compatmodule. Full changelog.0.13.0 (2018-12-08) – No library changes – a licence and packaging metadata refresh. Full changelog.