mdlayher / raw

Package raw enables reading and writing data at the device driver level for a network interface. MIT Licensed.
MIT License
425 stars 71 forks source link

raw: swap in github.com/mdlayher/packet for Linux #73

Closed mdlayher closed 2 years ago

mdlayher commented 2 years ago

Signed-off-by: Matt Layher mdlayher@gmail.com

This package has seen a lot of widespread use, but a lot has changed in the Go and networking ecosystem over the past 7 years. My original intent was to deprecate this package altogether, but since it has a large userbase, I've decided to instead make updates for Linux specifically to take advantage of all that I've learned since originally authoring this package.

https://github.com/mdlayher/packet

This new library will be a Linux AF_PACKET-specific library, with no support for *BSD or other operating systems. I'll be replacing the existing implementations for Linux in this library with the packet package, so that transition will be seamless for existing users.

However, if you're authoring new code or only run on Linux, keep an eye on that package for updates as that will expose more fine-grained operations. I'd love to eventually incorporate zerocopy and other improvements!

I started authoring this on stream (say hello at https://twitch.tv/mdlayher!) and hope to finish it in the next few days. Opening this PR to publicize the news and encourage folks to check out the new code too.