Crates.io | tygress |
lib.rs | tygress |
version | 0.1.1 |
source | src |
created_at | 2022-01-29 18:43:44.243695 |
updated_at | 2022-01-29 19:11:12.725118 |
description | A library implementing popular networking transport protocols in user space with Rust |
homepage | |
repository | https://github.com/ajguerrer/tygress |
max_upload_size | |
id | 523740 |
size | 109,283 |
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.