// the find
esp32-open-mac/FoA
Ferris-on-Air: An experimental IEEE 802.11 (WLAN) stack for rust on the ESP32.
An async Rust 802.11 stack for the ESP32, built on top of the esp32-open-mac reverse-engineered MAC layer and the embassy async runtime. It multiplexes hardware access across virtual interfaces so you can run STA and AP modes concurrently. Very early days — this is research code, not a production Wi-Fi driver.
The VIF multiplexer design is the right abstraction: plugging in foa_sta or foa_awdl as separate crates that share the same hardware without fighting over it is cleaner than most embedded Wi-Fi architectures. AWDL support is a rare find — Apple's proprietary peer-discovery protocol on a $5 chip is genuinely impressive. The async-first design with embassy means you're not polling in a busy loop or fighting FreeRTOS task scheduling. Apache/MIT dual-license with no Espressif SDK dependency means you actually own what you ship.
Station support is described as 'rudimentary' and there's no WPA3 or enterprise auth in sight — if you need anything beyond basic WPA2-PSK home Wi-Fi, you're writing it yourself. The project structure with separate Cargo workspaces per crate (foa, foa_sta, foa_awdl, examples all have their own Cargo.lock) suggests the API is still unstable enough that they don't want cross-crate version pinning to be a commitment. 263 stars and 5 forks means the community is watching but not contributing — you will be debugging alone when the LMAC does something unexpected. No CI visible in the repo tree, so there's no guarantee the examples even build against the current codebase.