Crates.io | embassy-net |
lib.rs | embassy-net |
version | 0.4.0 |
source | src |
created_at | 2021-10-20 15:53:38.641766 |
updated_at | 2024-01-11 22:59:10.005611 |
description | Async TCP/IP network stack for embedded systems |
homepage | |
repository | https://github.com/embassy-rs/embassy |
max_upload_size | |
id | 467977 |
size | 89,643 |
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, aiming for a more "Just Works" experience.
embedded-io
async traits.See the smoltcp
README for a detailed list of implemented and
unimplemented features of the network protocols.
esp-wifi
for WiFi support on bare-metal ESP32 chips. Maintained by Espressif.cyw43
for WiFi on CYW43xx chips, used in the Raspberry Pi Pico Wembassy-usb
for Ethernet-over-USB (CDC NCM) support.embassy-stm32
for the builtin Ethernet MAC in all STM32 chips (STM32F1, STM32F2, STM32F4, STM32F7, STM32H7, STM32H5).embassy-net-wiznet
for Wiznet SPI Ethernet MAC+PHY chips (W5100S, W5500)embassy-net-esp-hosted
for using ESP32 chips with the esp-hosted
firmware as WiFi adapters for another non-ESP32 MCU.eth
or wifi
.esp-wifi
repo has examples for use on bare-metal ESP32 chips.std
platforms, see the std
examplesTo add 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
traits.
Alternatively, 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
or embassy-net-driver-channel
. Never on the main embassy-net
crate.
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
link an embassy-time
driver in your project to use this crate.