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: dictdumper 0.8.5 fixed defects pcapkit.dumpkit.common had 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() to register_apptype() with no alias left behind, and revised the documentation across pcapkit.protocols, pcapkit.corekit and pcapkit.dumpkit; 1.3.1.post8 fixed PCAP output during flow tracing (#180). Full changelog.

  • 1.3.0 (2023-10-04) – A redesign of the extension points onto metaclasses, adding ModuleDescriptor so 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 SeekableReader introduced 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 from stdin or a pipe (#156). Full changelog.

  • 1.1.1 (2023-08-15) – Fixed reassembly, broken since 1.0.0 (#155), AppType enumeration lookups, typing.TypeAlias compatibility on older interpreters, the flow-tracing output file name, and Schema dumping through a custom dumper. Full changelog.

  • 1.1.0 (2023-07-09) – Rebuilt the schema and field classes on metaclasses, with EnumSchema for 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 AppType enumeration [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.extract failing on interpreters where decimal.localcontext takes no keyword arguments (#139). Full changelog.

  • 1.0.1 (2023-05-14) – Changed Info and Schema subclasses 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.warnings instead of warnings.warn directly, 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.registry for subscribing protocols by name. Full changelog.

  • 0.15.5 (2020-10-11) – Added a fallback encoder so DictDumper no longer raises on data it cannot encode (#65). Full changelog.

  • 0.15.4 (2020-08-28) – Fixed the missing stacklevel attribute on pcapkit.utilities (#58); Travis CI was set up. Full changelog.

  • 0.15.3 (2020-08-17) – Fixed ARP parsing (#55), and added logging through a pcapkit logger. 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 DictDumper dependency (#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.py extras. 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_DEVMODE environment 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 tbtrim dependency. Full changelog.

  • 0.13.1 (2019-01-23) – Added tbtrim to trim pcapkit’s own frames out of tracebacks through a custom excepthook, and fixed compatibility issues via a new pcapkit.utilities.compat module. Full changelog.

  • 0.13.0 (2018-12-08) – No library changes – a licence and packaging metadata refresh. Full changelog.