mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
Previously, we would allocate each message twice: 1. When receiving the original packet. 2. When forming the resulting channel-data message. We can optimise this to only one allocation each by: 1. Carrying around the original `ChannelData` message for traffic from clients to peers. 2. Pre-allocating enough space for the channel-data header for traffic from peers to clients. Local flamegraphing still shows most of user-space activity as allocations. I did occasionally see a throughput of ~10GBps with these patches. I'd like to still work towards #4095 to ensure we handle anything time-sensitive better.
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.