traudit (Traffic Audit)

English | 简体中文

traudit is a reverse proxy supporting TCP/UDP/Unix Sockets, focused on connection auditing with support for multiple databases.

Features

  • Multi-Protocol Support: TCP, UDP, Unix Domain Sockets.
  • Proxy Protocol: Support Proxy Protocol to record real IP.
  • Audit Logging: Store connection information in databases (ClickHouse, MySQL, PostgreSQL, SQLite).
  • Zero-Copy Forwarding: Uses splice on Linux for zero-copy forwarding.

What? You don't need a database? Then go use HAProxy.

Configuration

See config_example.yaml.

TODO List

  • Core Implementation
    • Configuration parsing (serde_yaml)
    • TCP Proxy & Zero-copy forwarding (splice)
    • Proxy Protocol V1/V2 parsing
    • UDP Forwarding (Planned)
    • Unix Socket Forwarding
  • Database Integration
    • ClickHouse Adapter (Native Interface)
    • Traffic Accounting (Bytes/Bandwidth)
    • IPv6 Support
    • SQLite/MySQL Adapters (Future)
  • Documentation & Testing
    • Basic End-to-end tests
    • Comprehensive Unit Tests
    • Deployment Guide
Description
A reverse proxy supporting TCP/UDP/Unix Sockets, focused on connection auditing with support for multiple databases.
Readme MIT 873 KiB
Languages
Rust 100%