rust-user-net: user-space network protocol stack written in Rust

72 points yo_ohei

I created a user-space network protocol stack in Rust for study / experiment purpose.

https://github.com/ykskb/rust-user-net

It talks Ethernet / ARP / IP / ICMP / UDP / TCP through TAP device in user space of Linux.

HTTP \(TCP: 80\) send \/ receive from google.com

As a Rust newbie (this is my first Rust project), I acknowledge there are many improvements to be made in codes, but it did feel good when my own protocol stack implementation in Rust could talk to normal sites like google :)

I also thought this project might be fitting for learning Rust in some aspects. Libc calls were required for controlling a virtual device (TAP) and multi-threading was required together with retransmission and signal handling for TCP data flow where incoming / outgoing traffic needs to happen concurrently.

Anyways, I hope this is something worth sharing for someone :) Thanks!