+
+**β¨ Writing applications with PcapPlusPlus is very easy and intuitive! β¨**
+
+
+
+Here's a **simple application** that shows how to read a packet from a PCAP file and parse it:
```cpp
#include
@@ -173,154 +342,572 @@ int main(int argc, char* argv[])
}
```
-You can find much more information in the [Getting Started](https://pcapplusplus.github.io/docs/quickstart) page in PcapPlusPlus web-site. This page will walk you through few easy steps to have an app up and running.
+
+
+**Want to learn more?**
+
+Visit our comprehensive [**π Getting Started**](https://pcapplusplus.github.io/docs/quickstart) guide! This page will walk you through **few easy steps** to have an app up and running.
+
+
+
+## Packet Capture Backends
+
+
+
+**Multiple Capture Engines Supported!**
+
+
+
+PcapPlusPlus provides a **unified C++ interface** for multiple packet capture backends, making it easy to switch between different capture engines based on your platform and requirements.
+
+
+
+
+
+### **libpcap**
+
+
+**π§ Universal Packet Capture**
+
+The standard packet capture library for **Unix-like systems**. Cross-platform support for Linux, macOS, and BSD.
+
+ |
+
+
+### **WinPcap / Npcap**
+
+
+**π₯οΈ Windows Packet Capture**
+
+**WinPcap** and **Npcap** provide packet capture capabilities on Windows systems with advanced filtering.
+
+ |
+
+
+### **Remote Capture (rpcapd)**
+
+
+**π‘ Network-Based Capture**
+
+**Remote packet capture** using rpcapd daemon for capturing packets from remote machines over the network.
+
+ |
+
+
+### **DPDK KNI**
+
+
+**π Kernel Network Interface**
+
+DPDK's **Kernel Network Interface** for seamless integration between kernel space and DPDK userspace applications.
+
+ |
+
+
+
+> π‘ **Why multiple backends?**
+>
+> Different capture backends are optimized for different use cases. **libpcap** provides broad compatibility, **WinPcap/Npcap** offers Windows integration, **rpcapd** enables remote monitoring, and **DPDK KNI** bridges high-performance DPDK with kernel networking.
+>
+> **PcapPlusPlus** abstracts these differences, providing a **consistent API** regardless of the underlying capture engine!
## API Documentation
-PcapPlusPlus consists of 3 libraries:
+
+
+**PcapPlusPlus Architecture Overview**
+
+
+
+PcapPlusPlus consists of **3 powerful libraries**:
+
+
+
+
+
+### **Packet++**
+
+
+**π Packet Processing Engine**
+
+A library for **parsing**, **creating** and **editing** network packets with support for 50+ protocols.
-1. __Packet++__ - a library for parsing, creating and editing network packets
-2. __Pcap++__ - a library for intercepting and sending packets, providing network and NIC info, stats, etc. It is actually a C++ wrapper for packet capturing engines such as libpcap, WinPcap, Npcap, DPDK and PF_RING
-3. __Common++__ - a library with some common code utilities used by both Packet++ and Pcap++
+ |
+
-You can find an extensive API documentation in the [API documentation section](https://pcapplusplus.github.io/docs/api) in PcapPlusPlus web-site.
-If you see any missing data please [contact us](#provide-feedback).
+### **Pcap++**
+
+
+**π‘ Capture & Send Engine**
+
+C++ wrapper for packet engines like **libpcap**, **WinPcap**, **Npcap**, **DPDK** and **PF_RING**.
+
+ |
+
+
+### **Common++**
+
+
+**βοΈ Utilities Library**
+
+Common utilities and helper functions used by both **Packet++** and **Pcap++**.
+
+ |
+
+
+
+
+
+**π Comprehensive Documentation Available**
+
+You can find extensive API documentation in the [**π API Documentation**](https://pcapplusplus.github.io/docs/api) section.
+
+
## Multi Platform Support
-PcapPlusPlus is currently supported on
-__Windows__
+
+
+**Runs Everywhere You Need It!**
+
+
+
+
+
+
+
+
## Supported Network Protocols
-PcapPlusPlus currently supports parsing, editing and creation of packets of the following protocols:
+
+
+**50+ Network Protocols Supported!**
+
+*PcapPlusPlus supports **parsing**, **editing** and **creation** of packets for the following protocols:*
+
+
### Data Link Layer (L2)
-1. Cisco HDLC
-2. Ethernet II
-3. IEEE 802.3 Ethernet
-4. LLC (Only BPDU supported)
-5. Null/Loopback
-6. Packet trailer (a.k.a footer or padding)
-7. PPPoE
-8. SLL (Linux cooked capture)
-9. SLL2 (Linux cooked capture v2)
-10. STP
-11. VLAN
-12. VXLAN
-13. Wake on LAN (WoL)
-14. NFLOG (Linux Netfilter NFLOG) - parsing only (no editing capabilities)
+
+
+- **Cisco HDLC**
+- **Ethernet II**
+- **IEEE 802.3 Ethernet**
+- **LLC** (BPDU supported)
+- **Null/Loopback**
+- **Packet trailer** (footer/padding)
+- **PPPoE**
+- **SLL** (Linux cooked capture)
+- **SLL2** (Linux cooked capture v2)
+- **STP**
+- **VLAN**
+- **VXLAN**
+- **Wake on LAN (WoL)**
+- **NFLOG** *(parsing only)*
+
### Network Layer (L3)
-15. ARP
-16. GRE
-17. ICMP
-18. ICMPv6
-19. IGMP (IGMPv1, IGMPv2 and IGMPv3 are supported)
-20. IPv4
-21. IPv6
-22. MPLS
-23. NDP
-24. Raw IP (IPv4 & IPv6)
-25. VRRP (IPv4 & IPv6)
-26. WireGuard
+
+
+- **ARP**
+- **GRE**
+- **ICMP**
+- **ICMPv6**
+- **IGMP** (v1, v2, v3)
+- **IPv4**
+- **IPv6**
+- **MPLS**
+- **NDP**
+- **Raw IP** (IPv4 & IPv6)
+- **VRRP** (IPv4 & IPv6)
+- **WireGuard**
+
+
### Transport Layer (L4)
-27. COTP
-28. GTP (v1 & v2)
-29. IPSec AH & ESP - parsing only (no editing capabilities)
-30. TCP
-31. TPKT
-32. UDP
+
+
+- **COTP**
+- **GTP** (v1 & v2)
+- **IPSec AH & ESP** *(parsing only)*
+- **TCP**
+- **TPKT**
+- **UDP**
+
+
### Session Layer (L5)
-33. SDP
-34. SIP
+
+
+- **SDP**
+- **SIP**
+
+
### Presentation Layer (L6)
-35. SSL/TLS - parsing only (no editing capabilities)
+
+
+- **SSL/TLS** *(parsing only)*
+
+
### Application Layer (L7)
-36. ASN.1 decoder and encoder
-37. BGP (v4)
-38. DHCP
-39. DHCPv6
-40. DNS
-41. FTP
-42. HTTP headers (request & response)
-43. LDAP
-44. NTP (v3, v4)
-45. Radius
-46. S7 Communication (S7comm)
-47. SMTP
-48. SOME/IP
-49. SSH - parsing only (no editing capabilities)
-50. Telnet - parsing only (no editing capabilities)
-51. X509 certificates - parsing only (no editing capabilities)
-52. Generic payload
-
-## DPDK And PF_RING Support
-
-[The Data Plane Development Kit (DPDK)](https://www.dpdk.org/) is a set of data plane libraries and network interface controller drivers for fast packet processing.
-
-[PF_RINGβ’](https://www.ntop.org/products/packet-capture/pf_ring/) is a new type of network socket that dramatically improves the packet capture speed.
-
-Both frameworks provide very fast packets processing (up to line speed) and are used in many network applications such as routers, firewalls, load balancers, etc.
-PcapPlusPLus provides a C++ abstraction layer over DPDK & PF_RING. This abstraction layer provides an easy to use interface that removes a lot of the boilerplate involved in using these frameworks. You can learn more by visiting the [DPDK](https://pcapplusplus.github.io/docs/dpdk) & [PF_RING](https://pcapplusplus.github.io/docs/features#pf_ring-support) support pages in PcapPlusPlus web-site.
+
+
+- **ASN.1** decoder/encoder
+- **BGP** (v4)
+- **DHCP**
+- **DHCPv6**
+- **DNS**
+- **FTP**
+- **HTTP** headers
+- **LDAP**
+- **NTP** (v3, v4)
+- **Radius**
+- **S7 Communication**
+- **SMTP**
+- **SOME/IP**
+- **SSH** *(parsing only)*
+- **Telnet** *(parsing only)*
+- **X509 certificates** *(parsing only)*
+- **Generic payload**
+
+
+
+## High-Performance Packet Processing Support
+
+
+
+**Unleash Line-Rate Performance!**
+
+
+
+
+
+
+
+### **DPDK**
+
+
+**β‘ Data Plane Development Kit**
+
+Set of data plane libraries and drivers for **ultra-fast packet processing**. Perfect for routers, firewalls, and load balancers.
+
+[**π Learn more**](https://pcapplusplus.github.io/docs/dpdk)
+
+ |
+
+
+### **PF_RINGβ’**
+
+
+**β‘ High-Speed Network Socket**
+
+Revolutionary network socket that **dramatically improves** packet capture speed for real-time processing.
+
+[**π Learn more**](https://pcapplusplus.github.io/docs/features#pf_ring-support)
+
+ |
+
+
+### **eBPF XDP**
+
+
+**β‘ eXpress Data Path**
+
+Linux kernel's **ultra-fast** packet processing framework using eBPF for **zero-copy** performance.
+
+[**π Learn more**](https://pcapplusplus.github.io/docs/features#af_xdp-support)
+
+ |
+
+
+
+> π‘ **Why use these high-performance frameworks?**
+>
+> All these frameworks provide **very fast packet processing** (up to **line speed**) and are used in many network applications such as **routers**, **firewalls**, **load balancers**, etc.
+>
+> **PcapPlusPlus** provides a **C++ abstraction layer** over DPDK, PF_RING & XDP that removes the boilerplate and makes these powerful frameworks **easy to use**!
## Benchmarks
-We used Matias Fontanini's [packet-capture-benchmarks](https://github.com/mfontanini/packet-capture-benchmarks) project to compare the performance of PcapPlusPlus with other similar C++ libraries (such as `libtins` and `libcrafter`).
+
+
+**Performance Matters!**
-You can see the results in the [Benchmarks](https://pcapplusplus.github.io/docs/benchmark) page in PcapPlusPlus web-site.
+
+
+We used **Matias Fontanini's** [**packet-capture-benchmarks**](https://github.com/mfontanini/packet-capture-benchmarks) project to compare the performance of **PcapPlusPlus** with other similar C++ libraries (such as `libtins` and `libcrafter`).
+
+
+
+**See The Results**
+
+Check out our comprehensive [**π Benchmarks**](https://pcapplusplus.github.io/docs/benchmark) page to see how **PcapPlusPlus** performs!
+
+
## Provide Feedback
-We'd be more than happy to get feedback, please feel free to reach out to us in any of the following ways:
+
+
+**We'd Love to Hear From You!**
+
+
+
+
+
+
+
+
+**π Issues**
+
+[GitHub Issues](https://github.com/seladb/PcapPlusPlus/issues)
+
+*Bug reports & feature requests*
+
+ |
+
-- Open a GitHub ticket
-- Post a message in PcapPlusPlus Google group:
-- Ask a question on Stack Overflow:
-- Send an email to:
-- Follow us on X:
+**π¬ Discussion**
-If you like this project please __Star us on GitHub β it helps!__ :star: :star:
+[Google Groups](https://groups.google.com/d/forum/pcapplusplus-support)
-Please visit the [PcapPlusPlus web-site](https://pcapplusplus.github.io/community) to learn more.
+*Community support*
+
+ |
+
+
+**β Q&A**
+
+[Stack Overflow](https://stackoverflow.com/questions/tagged/pcapplusplus)
+
+*Technical questions*
+
+ |
+
+
+**π§ Email**
+
+[pcapplusplus@gmail.com](mailto:pcapplusplus@gmail.com)
+
+*Direct contact*
+
+ |
+
+
+**π¦ Social**
+
+[Follow @seladb](https://x.com/seladb)
+
+*Updates & news*
+
+ |
+
+
+
+
+
+
+**β Show Your Support β**
+
+If you like this project please **Star us on GitHub** β it helps! π
+
+[](https://github.com/seladb/PcapPlusPlus/stargazers)
+
+
+
+
+
+**π Learn More**
+
+Visit the [**PcapPlusPlus Community**](https://pcapplusplus.github.io/community) page to learn more.
+
+
## Contributing
-We would very much appreciate any contribution to this project. If you're interested in contributing please visit the [contribution page](https://pcapplusplus.github.io/community#contribute) in PcapPlusPlus web-site.
+
+
+**Join Our Community of Contributors!**
+
+
+
+We would **very much appreciate** any contribution to this project! Whether you're:
+
+
+
+
+
+
+**π Bug Hunter**
+
+Found a bug?
+*Help us fix it!*
+
+ |
+
+
+**β¨ Feature Developer**
+
+Got a cool idea?
+*Let's build it together!*
+
+ |
+
+
+**π Documentation Writer**
+
+Love clear docs?
+*Help us improve them!*
+
+ |
+
+
+**π§ͺ Tester**
+
+Testing enthusiast?
+*Help us ensure quality!*
+
+ |
+
+
+
+
+
+
+**Get Started Contributing**
+
+Visit our [**π€ Contributing Guide**](https://pcapplusplus.github.io/community#contribute) to learn how you can help make PcapPlusPlus even better!
+
+
## License
-PcapPlusPlus is released under the [Unlicense license](https://choosealicense.com/licenses/unlicense/).
+
+
+**Free and Open Source**
+
+
+
+PcapPlusPlus is released under the [**Unlicense**](https://choosealicense.com/licenses/unlicense/) - meaning it's completely **free** for any use!
+
+
+
+[](https://choosealicense.com/licenses/unlicense/)
+
+**β
Commercial Use** β’ **β
Modification** β’ **β
Distribution** β’ **β
Private Use**
-[](https://choosealicense.com/licenses/unlicense/)
+
+
+---
+
+
+
+**π Thank you for using PcapPlusPlus! π**
+
+

+
+