A high-performance C micro-framework for building event-driven web applications and network services.
facil.io is a C micro-framework for building high-performance web applications and network services. It provides an event-driven HTTP/1.1 and WebSocket server, support for custom protocols, dynamic types, and JSON handling, designed to solve the C10K problem efficiently.
C developers building scalable web servers, real-time applications, or custom network services on Linux/BSD/macOS who need performance and low-level control.
Developers choose facil.io for its lightweight, event-driven architecture that delivers high concurrency performance, ease of integration into existing projects, and comprehensive features like WebSockets and pub/sub out of the box.
Your high performance web application C framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses an evented design with thread pool and forking support to efficiently handle the C10K problem, making it scalable for thousands of concurrent connections.
Provides HTTP/1.1, WebSocket, and custom protocol implementations, allowing for a wide range of network applications without external dependencies.
Includes dynamic types like Strings, Hashes, and Arrays designed for web use, simplifying data manipulation and JSON handling in C.
Supports multiple build systems (make, CMake, Meson) and offers scripts for quick project setup, making it adaptable to existing workflows.
The master branch is explicitly warned as often broken, forcing reliance on specific release versions for production stability, which can hinder rapid iteration.
HTTP/2 support is listed as an area needing contribution, indicating it's not fully implemented compared to other frameworks, limiting compatibility with newer protocols.
Primarily designed for Linux/BSD/macOS; Windows and Solaris support requires additional development effort, as mentioned in the forking section.