finds.dev← search

// the find

aregm/nff-go

★ 1,417 · Go · BSD-3-Clause · updated Nov 2022

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →