Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
ayaFlow — A high-performance, eBPF-based network traffic analyzer written in Rust. | Kitploit
Tools/GitHubGitHub/davidhavoc/ayaflow
Packet Sniffing & AnalysisNetwork MappingNetwork SecurityCloud SecurityDNS Analysis
GitHubdavidhavoc/ayaflow

ayaFlow

A high-performance, eBPF-based network traffic analyzer written in Rust.

View Repository
281652 months agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

ayaFlow

ayaFlow is a Rust + eBPF network traffic analyzer built with Aya. It runs one agent per Linux node, attaches a TC classifier at ingress and egress, and exposes live traffic data, historical SQLite-backed history, and Prometheus metrics.

What It Does

  • Captures IPv4, IPv6, TCP, and UDP traffic with an eBPF TC classifier.
  • Maintains live connection stats in memory and historical records in SQLite.
  • Optionally enriches traffic with reverse DNS, DNS query domains, and TLS SNI.
  • Exposes a REST API, WebSocket stream, and Prometheus /metrics endpoint.
  • Ships with Docker, Kubernetes, Prometheus, and Grafana examples.

Supported Development Flow

ayaFlow's packet-capture runtime is Linux-only. Contributor workflows are split on purpose:

  • Host-safe checks on macOS or Linux:
    • cargo test -p ayaflow-common
    • cargo test -p ayaflow
    • cargo xtask build-user
    • cargo xtask check-host
  • Linux-only build and runtime:
Download Tool
  • cargo xtask build-ebpf
  • cargo xtask build
  • cargo xtask run -- --deep-inspect

If you are on macOS, use Docker or a Linux VM for the full eBPF workflow. See HOW_TO_USE_LOCAL.md for both paths.

Quick Start

1. Check host support

root@kitploit:~
cargo xtask check-host

2. Build on Linux

root@kitploit:~
cargo xtask build

3. Run on Linux

root@kitploit:~
sudo ./target/debug/ayaflow --db-path /tmp/traffic.db

If --interface is omitted, ayaFlow auto-detects the default route interface from /proc/net/route and falls back to eth0 only if detection fails.

4. Verify

root@kitploit:~
curl http://localhost:3000/api/health
curl http://localhost:3000/api/stats
curl "http://localhost:3000/api/history?limit=5&row_type=raw"
curl http://localhost:3000/metrics

CLI Options

FlagDescriptionDefault
-i, --interfaceInterface to monitor. Omit to auto-detect the default route interface on Linux.auto-detect, fallback eth0
-p, --portAPI server port3000
--db-pathSQLite database pathtraffic.db
--connection-timeoutStale connection cleanup in seconds60
--data-retentionAuto-delete history older than N secondsdisabled
--aggregation-windowStore aggregated history windows instead of raw packet rows0 (raw mode)
--allowed-ipsCIDRs allowed to access the APIunrestricted
-c, --configYAML config file pathnone
-q, --quietSuppress non-error logsfalse
--deep-inspectEnable DNS query + TLS SNI extractionfalse
--enable-ipv6Enable IPv6 packet capturefalse
--resolve-dnsEnable reverse DNS lookupsfalse

API Reference

EndpointMethodDescription
/api/healthGETHealth status, packet counters, and active runtime configuration
/api/statsGETUptime, throughput, counts, and active runtime configuration
/api/liveGETTop 50 active connections by packet count
/api/historyGETFilterable historical traffic with pagination metadata
/api/streamWSLive stats every second
/metricsGETPrometheus text format

/api/history supports:

  • limit, offset
  • start_time, end_time
  • protocol
  • ip, src_ip, dst_ip
  • port, src_port, dst_port
  • direction
  • domain
  • row_type=raw|aggregated

Example:

root@kitploit:~
curl "http://localhost:3000/api/history?limit=20&protocol=TCP&dst_port=443&row_type=raw"

Project Structure

root@kitploit:~
ayaflow/           Userspace runtime, API, storage, and host-safe tests
ayaflow-common/    Shared packet/event types used by userspace and eBPF
ayaflow-ebpf/      TC classifier and payload capture program
xtask/             Build and workflow helpers
k8s/               Kubernetes manifests
monitoring/        Prometheus and Grafana assets

The duplicate root-level src/ tree is legacy and not part of the supported build path. Use the ayaflow/ crate and cargo xtask commands above.

Deployment Guides

  • Local Linux and macOS+VM workflows: HOW_TO_USE_LOCAL.md
  • Docker: HOW_TO_USE_DOCKER.md
  • Kubernetes: HOW_TO_USE_K8S.md

Technical Docs

  • Architecture: ARCHITECTURE.md
  • Footprint and performance notes: PERFORMANCE.md

Tested Here

The host-safe workflow now passes on this macOS development machine with:

  • cargo test -p ayaflow-common
  • cargo test -p ayaflow
  • cargo xtask check-host

Linux-only runtime validation still needs to happen on a Linux host or CI runner with the eBPF toolchain installed.

License

This project utilizes three different licenses depending on the component:

Userspace Components

The userspace agent and common libraries (ayaflow and ayaflow-common) are dual-licensed under either of:

  • Apache License, Version 2.0
  • MIT License

at your option.

Kernel Components

The eBPF kernel components (ayaflow-ebpf) are licensed strictly under the GNU General Public License v2.0 (GPL) to ensure compatibility with the Linux kernel verifier.