facebookarchive/libphenom
FreeAn eventing framework for building high performance and high scalability systems in C.
About facebookarchive/libphenom
libPhenom is an eventing framework for building high performance and high scalability systems in C. Originally developed by Facebook, it provides a set of facilities including memory management with counters, job scheduling for decomposing work, streaming I/O with buffers, common data structures (hash tables, lists, queues), a variant data type for JSON serialization/deserialization, and a custom printf implementation with registerable object formatting. It supports multiple I/O event backends such as epoll (Linux), kqueue (BSD), and port (Illumos/Solaris). The framework is designed to balance ease of use with performance, be neutral to threaded or event-based dispatch, and minimize contention points for scalability across many cores. Note: This project has been deprecated and archived as of March 2019 and is no longer actively maintained.
Key Features
Pros & Cons
- Efficient memory management with built-in counters
- Support for multiple operating system I/O event mechanisms (epoll, kqueue, port)
- Includes useful data structures and JSON serialization out of the box
- Designed for scalability with minimal contention points
- Provides a job scheduler for balancing work across threads or events
- Deprecated and no longer maintained (archived since March 2019)
- Depends on Concurrency Kit, which is not widely distributed via package managers
- Only available in C, limiting language flexibility
- Requires manual build from source using autotools