Snabb is a packet networking toolkit written in Lua and LuaJIT that compiles to a single stand-alone binary for processing network traffic in userspace without kernel overhead.
Snabb addresses the need for high-performance packet processing by combining Lua's ease of use with LuaJIT's just-in-time compilation to achieve performance competitive with C, while implementing kernel-bypass Ethernet I/O to eliminate kernel overhead. The toolkit packages multiple networking applications into one executable, similar to busybox for networking, allowing developers to build custom network elements without writing low-level C code.
Snabb suits operators and network engineers building high-throughput packet processing applications, particularly those handling 50 Mpps or higher packet rates. The toolkit is well-suited for NFV deployments with QEMU/KVM, IPv6 transition scenarios, and Layer-2 VPN applications. The project includes production applications like Snabb NFV for virtualized networking at scale and lwAFTR for IPv6-to-IPv4 address translation in ISP networks. Developers choosing Snabb should expect to write in Lua and be comfortable with userspace networking concepts; the README does not compare it to alternative frameworks.
The project maintains active community engagement through documentation and contribution guidelines. Development spans multiple application domains including virtualized networking, IPv6 transition technologies, and Layer-2 services, indicating sustained work across diverse use cases. The codebase includes high-level device drivers and compiler-based approaches to packet filtering, showing technical depth beyond basic packet forwarding.