A library implementing popular networking transport protocols in user space with Rust.
async
- Rust already has networking primitives for TCP/UDP. That
familiar API is reproduced here, but with non-blocking primitives similar to the API in
Tokio. These primitives are intended for use with the tygress
executor multiplexing
network traffic between a NetDev
to a collection of sockets.unsafe
keyword is necessary to provide a type-safe
zero-copy API. Usage of unsafe
is cordoned off to a small, well documented section of the
library, while the rest is written in safe Rust.no_std
- A network stack all in one place using only the core
components of the Rust standard library. Implement the NetDev
trait for your own network device
capable of receiving/transmitting Ethernet frames and BYOB (Bring Your Own Buffers) for the
sockets. Those running Unix/BSD may opt-in to some provided NetDev
implementations.smoltcp
- Used heavily as a reference throughout the project.tokio
- Ideas for async
networking primitives.embassy
- Ideas for a no_std
executor.zerocopy
- Ideas for zero-copy type-safe headers.