DataDog / glommio

Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.
Other
3.1k stars 164 forks source link

DPDK integration #336

Closed shivshankardayal closed 3 years ago

shivshankardayal commented 3 years ago

Is there any plan to integrate DPDK witth glommio?

glommer commented 3 years ago

No, and I don't think it is the right move. I am interested in integrating AF_XDP, which I believe to be more flexible, easier to set up, more modern, and provide most of the benefit of DPDK. @bryandmc was working on his spare time in some initial code.

bryandmc commented 3 years ago

Yeah I already have proof of concept using af_xdp directly, and I am hoping to get something officially merged in the new few months. The af_xdp model would still allow us to do true zero copy networking without having to deal with dpdk. The initial thing we merge will likely only include L2/3 sockets (raw access to frames) and a simple udp stack on top of it. It likely won't include tcp because we aren't currently willing to fight that fight..

What are your (the op's) specific interests in dpdk in glommio? What were you hoping to do with it? Having real world interest and use cases can probably help inform our design..

shivshankardayal commented 3 years ago

@bryandmc Not there is not specific interest in DPDK apart from user-mode networking. I am reading up on AF_XDP and it is interesting.

shivshankardayal commented 3 years ago

@bryandmc My interests have changed, and I want to build an http web framework based on user mode networking based on Glommio. I am no Rust expert, but it will be a worthwhile project, so I am willing to invest time. The goal is to build the fastest possible framework possible.

bryandmc commented 3 years ago

@shivshankardayal - well glad to hear you're interested in helping out! We will definitely need the help.. I'm hoping to land a very basic AF_XDP driver as soon as I can find the time to finish it. So stay tuned and we are definitely gonna need people to code review the initial patch, and then build from there.

shivshankardayal commented 3 years ago

@bryandmc I will be of little help as I am just a beginner in Rust. However, I will take tide.rs http framework code and try to port it to glommio. I hope to learn Rust by doing this project. I used to be C/C++ programmer, so I understand the concepts. The syntax is weird for me and all the functions are differently named in rust which makes it a bit of hassle.