A multiplatform C++ library for capturing, parsing, and crafting network packets with wrappers for libpcap, DPDK, and PF_RING.
PcapPlusPlus is a multiplatform C++ library for capturing, parsing, and crafting network packets. It provides efficient C++ wrappers for popular packet processing engines like libpcap, Npcap, WinPcap, DPDK, AF_XDP, and PF_RING, enabling developers to build high-performance network applications.
C++ developers building network tools, security applications, traffic analyzers, or any software requiring low-level packet manipulation across Windows, Linux, macOS, Android, or FreeBSD.
Developers choose PcapPlusPlus for its comprehensive protocol support, high-performance wrappers for DPDK and PF_RING, and consistent multiplatform API that simplifies working with diverse packet capture engines.
PcapPlusPlus is a multiplatform C++ library for capturing, parsing and crafting of network packets. It is designed to be efficient, powerful and easy to use. It provides C++ wrappers for the most popular packet processing engines such as libpcap, Npcap, WinPcap, DPDK, AF_XDP and PF_RING.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports parsing and crafting for over 50 network protocols across all OSI layers, including niche industrial protocols like S7Comm and Modbus, as listed in the README.
Provides efficient C++ wrappers for DPDK, AF_XDP, and PF_RING, enabling line-rate packet processing with benchmarks showing competitive performance against libraries like libtins.
Offers a unified API across Windows, Linux, macOS, Android, and FreeBSD, simplifying cross-platform development without engine-specific code changes.
Includes unique implementations for TCP reassembly and IP defragmentation that handle retransmissions and out-of-order packets, critical for accurate network analysis.
Several key protocols like SSL/TLS, SSH, and IPSec are limited to parsing only (no editing capabilities), restricting packet crafting for security-focused applications.
Integrating with engines like DPDK or PF_RING requires additional system configuration, kernel modules, and dependencies, increasing initial deployment complexity.
Relies on C++ toolchains and manual memory management, which can be error-prone and less accessible compared to garbage-collected languages for network scripting.