Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Explore replacing libwpasupplicant.a with a pure Rust implementation #1602

Closed
bjoernQ opened this issue Apr 11, 2023 · 2 comments
Closed

Explore replacing libwpasupplicant.a with a pure Rust implementation #1602

bjoernQ opened this issue Apr 11, 2023 · 2 comments
Labels
package:esp-wifi Issues related to the esp-wifi package

Comments

@bjoernQ
Copy link
Contributor

bjoernQ commented Apr 11, 2023

This should be a non-default feature (i.e. defaulting to the precompiled libwpasupplicant.a)

It seems feasible to do this and might give some benefits (like better compile-time optimizations, compile time feature selection, better integration with esp-hal). It will most probably only offer a subset of functionality

Downsides might be that this code won't be battle-tested. However, we can have a look at the CVEs and see if anything potentially might apply. Due to reduced functionality and the use of Rust many of those probably won't apply

Resources

@rftafas
Copy link

rftafas commented Apr 16, 2024

Hi,

Let me offer some 'ancient' information. Coming from a C-based implementation of on-chip Wi-Fi support to non-ESP-IDF OSes. In other words, enabling ESP32 on Zephyr and NuttX with Wi-Fi.

We found that a supplicant layer was not that greatly supported out there on microcontroller world. Furthermore, Espressif Supplicant solution was actually pretty good (size, performance) with the downside of having binaries. Then, since those projects don't like to deal with binaries within their kernel, we created wireless-drivers-3rdparty (later we ran into the problem that for everything we took from ESP-IDF, another repo was created. Then we consolidated everything we need from ESP-IDF in esp-hal-3rdparty and have deprecated the other).

We ended up deciding that we would settle for packing everything within the driver even after these OSes adopted some form of supplicant layer. Kind of like the ancient Wi-Fi cards did. Such decision is still valid today, even after these OSes adopted some form of supplicant layer. The main reason now is that decoupling the driver from the supplicant layer is not something fast or easy to do. Also... Binaries will always be there, so the Wi-Fi stack would always to be tainted anyway, this would add no feature (and potentially introduce bugs) and we had other things to focus on.

@bjoernQ bjoernQ transferred this issue from esp-rs/esp-wifi-sys May 27, 2024
@bjoernQ bjoernQ added the package:esp-wifi Issues related to the esp-wifi package label May 27, 2024
@MabezDev
Copy link
Member

This won't be on our roadmap anytime soon, but we can always revisit this in the future.

@MabezDev MabezDev closed this as not planned Won't fix, can't repro, duplicate, stale Jul 12, 2024
@github-project-automation github-project-automation bot moved this from Todo to Done in esp-rs Jul 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
package:esp-wifi Issues related to the esp-wifi package
Projects
Archived in project
Development

No branches or pull requests

3 participants