mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
With the move to SANS-IO, we will be able to write deterministic unit tests for the tunnel logic. To actually do that, `ClientState` and `GatewayState` need to encapsulate all the logic that we want to test. This PR does some minor refactoring on the functions on `ClientTunnel` and moves several of them onto `ClientState`. It doesn't touch `add_resources` and `remove_resource` because those depend on #4156.
Rust development guide
Firezone uses Rust for all data plane components. This directory contains the Linux and Windows clients, and low-level networking implementations related to STUN/TURN.
We target the last stable release of Rust using rust-toolchain.toml.
If you are using rustup, that is automatically handled for you.
Otherwise, ensure you have the latest stable version of Rust installed.