This blog post was a bit delayed in the pipeline, but a new release of tcproxy
, our educational async (tokio) rust command line proxy project, is now available for download (precompiled binaries or install via cargo
).
I was actually surprised to find that we haven’t written about tcpproxy before (you can see our other rust-related posts here), but it’s a command line tcp proxy “server” written with two purposes in mind: a) serving as a real-world example of an async (tokio-based) rust networking project, and b) serving as a minimal but-still-useful tcp proxy you can run and use directly from the command line, without needing complex installation or configuration procedures. (You can think of it as being like Minix, but for rust and async networking.)
The tcpproxy project has been around for quite some time, originally published in 2017 before rust’s async
support was even stabilized. At the time, it manually chained futures to achieve scalability without relying on the thread-per-connection model – but today its codebase is a lot easier to follow and understand thanks to rust’s first-class async/await support.