I've rewritten (and redesign?) frp in Rust, and seen a large improvement in performance and memory

180 points Swimming-Ad-8929

frp is written in Golang and is kind of a long-running system-wide service that provide network access to devices behind NAT or firewalls. It's the only widely used project after ngrok 1 was stopped.

I can't resist the tempt to rewrite it in Rust, with Tokio and async stuff. So I did it. The outcome is surprisingly good. Only 1/5 memory is used and the throughput is like several times larger than frp. I think Rust really has advantages in system software, particularly speaking, rewriting those written in Golang in the past :)

https://github.com/rapiz1/rathole