rathole-org/rathole

A lightweight and high-performance reverse proxy for NAT traversal, written in Rust. An alternative to frp and ngrok.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 3 minutes ago
Added to GitGenius on September 4th, 2026
Created on December 14th, 2021
Open Issues & Pull Requests: 95 (+0)
GitHub issues: Enabled
Number of forks: 821
Total Stargazers: 14,122 (+0)
Total Subscribers: 73 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

Rathole is a lightweight and high-performance reverse proxy for NAT traversal, written in Rust.

Rathole solves the problem of exposing services running behind a NAT or firewall to the public internet without requiring complex network configuration. It works by establishing a connection from a client behind the NAT to a server with a public IP address, then forwarding traffic from the internet through that server back to the client's local services. The tool achieves higher throughput than comparable alternatives while consuming significantly less memory, with binaries as small as 500 KiB to support embedded devices. Security is built in through mandatory per-service tokens and optional encryption via the Noise Protocol or TLS, without requiring self-signed certificate management.

Rathole suits teams and individuals who need reliable NAT traversal without the overhead of heavier solutions. It works well for exposing services like SSH, HTTP servers, or databases from devices behind restrictive firewalls. The configuration approach is similar to frp, making it accessible to users familiar with that tool, though rathole requires explicit token configuration for each service. The tool supports hot-reloading of configuration changes, allowing services to be added or removed without restarting the proxy.

The project maintains active development with regular updates addressing stability and performance. The codebase shows consistent refinement of core functionality rather than rapid feature expansion. Maintenance activity demonstrates attention to both the server and client components, with documentation and build tooling kept current. The project provides multiple deployment options including pre-built releases, Docker images, and build guidance for platform-specific optimization.