4 ms·
If you fancy reading some rust, smoltcp [0] by u/whitequark_ [1] is a pretty good starting point, especially considering it intentionally leaves out functionali
by ignoramous 7y ago
If you fancy reading some rust, smoltcp [0] by u/whitequark_ [1] is a pretty good starting point, especially considering it intentionally leaves out functionality and compliance for the sake of simplicity and safety [2][3].
Then there are the more complete netmap [4] and lwIP [5] TCP/IP implementations too, but in C.
---
[0] https://docs.rs/smoltcp/0.6.0/smoltcp/ https://docs.rs/smoltcp/0.6.0/smoltcp/
[1] https://news.ycombinator.com/item?id=17896175 https://news.ycombinator.com/item?id=17896175
[2] https://github.com/smoltcp-rs/smoltcp/blob/master/README.md https://github.com/smoltcp-rs/smoltcp/blob/master/README.md
[3] https://news.ycombinator.com/item?id=20241138 https://news.ycombinator.com/item?id=20241138
[4] http://info.iet.unipi.it/~luigi/netmap/ http://info.iet.unipi.it/~luigi/netmap/
[5] https://www.nongnu.org/lwip/2_1_x/index.html https://www.nongnu.org/lwip/2_1_x/index.html
- ignoramous 7y ago> Then there are the more complete netmap... My bad. Netmap is a "kernel-network-stack bypass" mechanism [0]. Usually a userland TCP/IP implementation is used in conjunction with it [1]. Then there's NetStack for gVisor [2] in golang. [0] https://news.ycombinator.com/item?id=10365731 https://news.ycombinator.com/item?id=10365731 [1] https://news.ycombinator.com/item?id=15630088 https://news.ycombinator.com/item?id=15630088 [2] https://news.ycombinator.com/item?id=15556398 https://news.ycombinator.com/item?id=15556398