A secure, stable and high-performance reverse proxy for NAT traversal, written in Rust. rathole, like frp and ngrok, can help to expose the service on the device behind the NAT to the Internet, via a server with a public IP. High Performance Much higher throughput can be achieved than frp, and more stable when handling a large volume of connections. Low Resource Consumption Consumes much fewer memory than similar tools. See Benchmark. The binary can be as small as ~500KiB to fit the constraints of devices, like embedded devices as routers. Security Tokens of services are mandatory and service-wise. The server and clients are responsible for their own configs. With the optional Noise Protocol, encryption can be configured at ease. No need to create a self-signed certificate! TLS is also supported.

Features

  • Hot Reload Services can be added or removed dynamically by hot-reloading the configuration file. HTTP API is WIP
  • High Performance Much higher throughput can be achieved than frp, and more stable when handling a large volume of connections
  • Low Resource Consumption Consumes much fewer memory than similar tools
  • Security Tokens of services are mandatory and service-wise
  • The server and clients are responsible for their own configs
  • With the optional Noise Protocol, encryption can be configured at ease. No need to create a self-signed certificate! TLS is also supported

Project Samples

Project Activity

See All Activity >