The lint job installs ruff unpinned (pip install ruff), which reached 0.15.22 and, under preview = true, promoted the rule-codes-in-selectors diagnostic that rejects rule codes like E501/S101 in lint.ignore. This project was the only one with preview enabled. Dropping preview keeps the code-based selectors valid on every ruff version in play (0.15.1 pre-commit pin, 0.15.7, 0.15.22 CI) and aligns it with the other Python projects. No rule coverage change. |
||
|---|---|---|
| .. | ||
| assets | ||
| cpp | ||
| python | ||
| DEMO.md | ||
| README.md | ||
README.md
Network Traffic Analyzer
Two implementations of the same network traffic analyzer — one in Python, one in C++. Both capture packets at the kernel level, parse protocol headers, and display real-time statistics.
Implementations
| Implementation | Stack | Highlights |
|---|---|---|
| C++ | C++20 • libpcap • FTXUI | Interactive TUI, polymorphic IP parser, mutex-protected stats engine |
| Python | Python 3.14 • Scapy • Rich | Producer-consumer threading, BPF filter builder, Matplotlib chart export |
Quick Start
C++ — high-performance interactive TUI:
cd cpp
./install.sh
just run -i eth0
Python — scriptable with chart export:
cd python
uv sync
sudo netanal capture -i eth0
Both require root or CAP_NET_RAW capability for packet capture.