# edge-net
[](https://github.com/ivmarkov/edge-net/actions/workflows/ci.yml)

[](https://docs.rs/edge-net)
This crate ships async + `no_std` + no-alloc implementations of various network protocols.
Suitable for microcontrollers and embedded systems in general.
## Supported protocols
* [HTTP client and server](edge-http)
* [Websocket send/receive](edge-ws)
* [DNS Captive Portal](edge-captive)
* [mDNS responder](edge-mdns)
* [DHCP cient and server](edge-dhcp)
* [Raw IP & UDP packet send/receive](edge-raw) (useful in combination with the DHCP client and server)
* [MQTT client](edge-mqtt) (currently just a slim wrapper around [`rumqttc`](https://github.com/bytebeamio/rumqtt/tree/main/rumqttc), so needs STD)
* [TCP, UDP and raw sockets](edge-nal)
## Supported platforms
* [The Rust Standard library](edge-nal-std)
* [The networking stack of Embassy](edge-nal-embassy)
* Any other platform, as long as you implement (a subset of) [edge-nal](edge-nal)
* The necessary minimum being the `Read` / `Write` traits from [embedded_io_async](https://crates.io/crates/embedded-io-async/0.5.0) - for modeling TCP sockets - and `UdpReceive` / `UdpSend` from [edge-nal](edge-nal) - for modeling UDP sockets
* Most crates ([edge-captive](edge-captive), [edge-dhcp](edge-dhcp), [edge-ws](edge-ws), [edge-raw](edge-raw)) also provide a compute-only subset that does not need [embedded-io-async](https://crates.io/crates/embedded-io-async/0.5.0) or [edge-nal](edge-nal) traits
**PRs welcome!**