Firezone uses Rust to build secure remote access apps with a connectivity library called connlib. Their design, known as sans-IO, abstracts away communication complexities by implementing protocols as pure state machines. This design choice, common in the Python world, allows for flexible network services with minimal dependencies. The post discusses Rust’s async model, the “function colouring” debate, and the benefits of sans-IO design, emphasizing easy composition, flexible APIs, and easy testing. Firezone’s example with STUN binding showcases how this approach simplifies and enhances network protocol implementations, making them more versatile across different network setups.
https://www.firezone.dev/blog/sans-io