A high-performance user-space network development kit based on DPDK and FreeBSD TCP/IP stack for kernel bypass applications.
F-Stack is a user-space network development kit that provides ultra-high network performance by combining DPDK for kernel bypass with a ported FreeBSD TCP/IP stack. It solves the bottleneck of Linux kernel packet processing in modern high-speed networks, enabling applications to handle millions of connections and requests per second.
Network engineers and developers building high-performance network services such as DNS servers, CDN access modules, and cloud infrastructure components that require kernel bypass capabilities.
Developers choose F-Stack because it offers proven, production-ready performance with familiar application interfaces (like Nginx and Redis), avoids the cost of maintaining a custom TCP/IP stack, and leverages FreeBSD's ongoing community improvements.
F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks show support for 10 million concurrent connections and 5 million RPS under full load, as demonstrated in Nginx testing with DPDK kernel bypass.
Leverages FreeBSD's stable, production-ready stack with irrelevant features removed, reducing development cost and benefiting from community updates.
Supports Nginx and Redis with minimal changes, allowing mature applications to achieve high performance quickly through provided modules and interfaces.
Architecture enables easy extension across multiple processes, enhancing scalability for high-demand services like CDN access modules.
Requires compiling DPDK, setting hugepages, offloading NICs with kernel modules, and disabling ASLR, involving multiple error-prone system-level steps.
Depends on specific NICs like Intel XL710, NUMA systems, and OS tweaks (e.g., FreeBSD loader.conf changes), limiting portability and increasing deployment overhead.
Primarily supports Nginx and Redis; integrating other apps requires porting effort and deep understanding of epoll/kqueue interfaces, as admitted in the README.