-
Notifications
You must be signed in to change notification settings - Fork 173
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
ESP32 Support (or just no_std
in general)
#1163
Comments
Hey! That is an interesting opportunity to pursue. Feel free to experiment on a fork and let us know. The TLS code is referred in very few places in the codebase, so despite this issue sounding like a low level stuff, it might be pretty easy to pick it up. However, keep in mind that we have to be careful when enabling/disabling TLS related features and dependencies, so no promises that it would be merged. |
What do we think about using |
I looked at it briefly and it looks like a promising option @paolobarbolini |
I had a few more thoughts about this. Would it be possible to make |
Websockets are planned. |
Proposed change
Recently, Rust on ESP32 and embedded devices in general has made huge steps forward. By now, we can even execute
std
Rust and fully async runtimes like tokio on just an ESP32 device.I don't know, if this would even be possible without huge changes internally, but would it somehow be possible to introduce a new feature flag, which would reduce the dependencies as much as possible and, more important, get rid of any dependencies that pull in
ring
? There are wrappers and all sorts of things, that make it possible to just use TLS directly on these devices already with HTTP or WS connections. If possible, it would be a huge advantage I guess, ifasync_nats
could use something like https://esp-rs.github.io/esp-idf-svc/esp_idf_svc/tls/struct.EspTls.html instead of bringing its own TLS suite, which pulls inring
.The existing libraries have all sorts of functionalities built-it and you can use mqtt right away without needing to add anything else, but it would be so much more convenient if we could use Nats directly without configuring the mqtt bridge.
Use case
Make it possible to build all kinds of embedded / IoT devices from microcontrollers with direct NATS support instead of bridging between MQTT and NATS.
Contribution
I have never worked with the internals of this crate so far, but I could give it a shot. It would actually depend on the answer from someone who knows the code, if it makes sense as a "good first issue".
Edit:
... or maybe an integration with https://github.com/drogue-iot/embedded-tls can be done.
I think at this point, the only missing part to make it work in embedded systems is TLS.
The text was updated successfully, but these errors were encountered: