Skip to content

Type-Safe Rust Wrappers for various ESP-IDF services (WiFi, Network, Httpd, Logging, etc.)

License

Notifications You must be signed in to change notification settings

bshubenok-sigma/esp-idf-svc

 
 

Repository files navigation

Safe Rust wrappers for the services in the ESP IDF SDK

CI crates.io Documentation Matrix Wokwi

Highlights

  • Supports almost all ESP IDF services: timers, event loop, Wifi, Ethernet, HTTP client & server, MQTT, WS, NVS, OTA, etc.
  • Implements the traits of embedded-svc
  • Blocking and async mode for each service (async support where feasible)
  • Re-exports esp-idf-hal and esp-idf-sys as esp_idf_svc::hal and esp_idf_svc::sys. You only need to depend on esp_idf_svc to get everything you need

You might want to also check out the ESP IDF Drivers wrappers, and the raw bindings to ESP IDF in the esp-idf-sys crate!

Build Prerequisites

Follow the Prerequisites section in the esp-idf-template crate.

Examples

The examples could be built and flashed conveniently with cargo-espflash. To run e.g. wifi on an e.g. ESP32-C3: (Swap the Rust target and example name with the target corresponding for your ESP32 MCU and with the example you would like to build)

with cargo-esptool v1.7:

$ ESP_IDF_VERSION=release/v4.4 cargo espflash --target riscv32imc-esp-espidf --example wifi --monitor /dev/ttyUSB0

with cargo-esptool v2.0:

$ ESP_IDF_VERSION=release/v4.4 cargo espflash flash --target riscv32imc-esp-espidf --example wifi --monitor

Setting up a "Hello, world!" binary crate with ESP IDF

Use the esp-idf-template project. Everything would be arranged and built for you automatically - no need to manually clone the ESP IDF repository.

More information

For more information, check out:

About

Type-Safe Rust Wrappers for various ESP-IDF services (WiFi, Network, Httpd, Logging, etc.)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%