// the find
aregm/nff-go
NFF-Go -Network Function Framework for GO (former YANFF)
NFF-Go is an Intel-backed framework for writing high-performance network functions in Go on top of DPDK. It targets NFV/telecom use cases — firewalls, load balancers, IPSec gateways — where you need near-line-rate packet processing but don't want to write raw C DPDK code. The audience is network engineers who know what a PMD is and have DPDK-capable hardware.
The abstraction over DPDK is genuinely useful — the firewall example is about 25 lines vs. hundreds in raw C DPDK. The built-in scheduler that auto-scales worker goroutines up and down based on traffic load is a real feature, not a checkbox. AF_XDP support alongside DPDK means you can run the same code path on commodity hardware without DPDK-bound NICs, which widens the addressable hardware significantly. The examples directory is thorough: IPSec with hand-rolled AES assembly, GTP-U, DPI, load balancing — these are real network function patterns, not toy demos.
Dead since November 2022 — Intel quietly stopped maintaining it, the Gitter chat is gone, and the mailing list contact is a single engineer's email. It's pinned to older Go module conventions and bundles DPDK as a git submodule, meaning you're also adopting whatever DPDK version they froze at. The build setup is genuinely painful: DPDK hugepages, kernel module loading, libbpf from source, Mellanox userspace libs — you will spend a day just getting 'make' to succeed on a fresh machine. No Windows, no macOS, Linux only, and realistically only x86_64 with specific NIC support.