alibaba / PhotonLibOS

Probably the fastest coroutine lib in the world!

Home Page:https://PhotonLibOS.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PhotonLibOS

CI CI CI

PhotonlibOS.github.io

What's New

  • Feb 2024,中文文档在官网上线了
  • Since 0.7, Photon will use release branches to enhance the reliability of software delivery. Bugfix will be merged into a stable release at first, then to higher release versions, and finally main.
  • Since version 0.6, Photon can run with a userspace TCP/IP stack on top of DPDK. En / 中文.
  • How to transform RocksDB from multi-threads to coroutines by only 200 lines of code? En / 中文.
Click to show more history...

  • Version 0.5 is released. Except for various performance improvements, including spinlock, context switch, and new run queue for coroutine scheduling, we have re-implemented the HTTP module so that there is no boost dependency anymore.
  • Version 0.4 has come, bringing us these three major features:
    1. Support coroutine local variables. Similar to the C++11 thread_local keyword. See doc.
    2. Support running on macOS platform, both Intel x86_64 and Apple M1 included.
    3. Support LLVM Clang/Apple Clang/GCC compilers.
  • Photon 0.3 was released on 2 Sep 2022. Except for bug fixes and improvements, a new photon_std namespace is added. Developers can search for std::thread, std::mutex in their own projects, and replace them all into the equivalents of photon_std::<xxx>. It's a quick way to transform thread-based programs to coroutine-based ones.
  • Photon 0.2 was released on 28 Jul 2022. This release was mainly focused on network socket, security context and multi-vcpu support. We re-worked the WorkPool so it's more friendly now to write multi-vcpu programs.
  • Made the first tag on 27 Jul 2022. Fix the compatibility for ARM CPU. Throughly compared the TCP echo server performance with other libs.

Community

Join Slack: link

Join DingTalk group: 55690000272

About

Probably the fastest coroutine lib in the world!

https://PhotonLibOS.github.io

License:Apache License 2.0


Languages

Language:C++ 97.0%Language:CMake 1.7%Language:SWIG 0.8%Language:Python 0.4%Language:C 0.2%Language:Shell 0.0%