4 releases (2 breaking)
|0.2.1||Oct 31, 2023|
|0.2.0||Oct 18, 2023|
|0.1.0||Jun 29, 2023|
|0.0.0||Oct 20, 2021|
#1077 in Embedded development
455 downloads per month
Used in 2 crates
embassy-net is a no-std no-alloc async network stack, designed for embedded systems.
It builds on
smoltcp. It provides a higher-level and more opinionated
API. It glues together the components provided by
smoltcp, handling the low-level details with defaults and
memory management designed to work well for embedded systems, aiiming for a more "Just Works" experience.
- IPv4, IPv6
- Ethernet and bare-IP mediums.
- TCP, UDP, DNS, DHCPv4, IGMPv4
- TCP sockets implement the
smoltcp README for a detailed list of implemented and
unimplemented features of the network protocols.
esp-wififor WiFi support on bare-metal ESP32 chips. Maintained by Espressif.
cyw43for WiFi on CYW43xx chips, used in the Raspberry Pi Pico W
embassy-usbfor Ethernet-over-USB (CDC NCM) support.
embassy-stm32for the builtin Ethernet MAC in all STM32 chips (STM32F1, STM32F2, STM32F4, STM32F7, STM32H7, STM32H5).
embassy-net-wiznetfor Wiznet SPI Ethernet MAC+PHY chips (W5100S, W5500)
embassy-net-esp-hostedfor using ESP32 chips with the
esp-hostedfirmware as WiFi adapters for another non-ESP32 MCU.
- For usage with Embassy HALs and network chip drivers, search here for
esp-wifirepo has examples for use on bare-metal ESP32 chips.
- For usage on
stdplatforms, see the
Adding support for new hardware
embassy-net support for new hardware (i.e. a new Ethernet or WiFi chip, or
an Ethernet/WiFi MCU peripheral), you have to implement the
embassy-net-driver-channel provides a higer-level API
to construct a driver that processes packets in its own background task and communicates with the
embassy-net task via
packet queues for RX and TX.
Drivers should depend only on
embassy-net-driver-channel. Never on the main
This allows existing drivers to continue working for newer
embassy-net major versions, without needing an update, if the driver
trait has not had breaking changes.
This crate can run on any executor.
embassy-time is used for timekeeping and timeouts. You must
embassy-time driver in your project to use this crate.
This work is licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.