A high-performance C++ coroutine library for I/O-intensive applications, featuring user-space threading and support for epoll, io_uring, and DPDK.
PhotonLibOS is a C++ library designed to augment the operating system for high-performance concurrent I/O programming. It features a highly efficient user-space threading model implemented as coroutines, driven by asynchronous event engines like epoll, io_uring, and kqueue. The library solves the problem of developing I/O-intensive applications by providing fast context switching and comprehensive abstractions for networking and file I/O.
C++ developers building high-performance I/O-intensive applications, such as distributed systems, storage services, networking tools, and AI/ML infrastructure components. It is also suitable for teams in production environments at companies like Alibaba, ByteDance, and Xiaomi.
Developers choose PhotonLibOS for its exceptional performance, with coroutine switches in nanoseconds and low overhead, backed by production use in major tech companies. Its unique selling point is the combination of user-space threading, multi-platform support, and ground-up implementations of key distributed system components like RPC and HTTP, offering higher efficiency than existing solutions.
Probably the fastest coroutine lib in the world!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Context switches occur in nanoseconds with low-cost creation via malloc() and pooling, as highlighted in performance benchmarks, making it ideal for high-concurrency I/O.
Unified interface abstracts epoll, io_uring, kqueue, and DPDK, providing consistent I/O operations across Linux and macOS on x86_64 and ARM64.
Includes ground-up implementations of RPC, HTTP client/server, and Redis client, proven in production at companies like Alibaba and ByteDance.
Offers comprehensive docs in English and Chinese, with active Slack and DingTalk communities, and is included in awesome-cpp for visibility.
Limited to C++ development, excluding teams using other languages or requiring cross-language interoperability, which restricts its adoption in polyglot environments.
Requires deep knowledge of coroutines and event-driven programming, with setup involving low-level system calls and potential integration challenges, as noted in version updates managing reliability.
Lacks support for Windows, making it unsuitable for projects or teams that rely on Microsoft's ecosystem, despite its broad Linux and macOS coverage.
With recent releases like version 0.9 and the use of release branches for bug fixes, it may experience breaking changes or instability compared to more mature libraries like libuv.