Skip to content

Latest commit

 

History

History
65 lines (45 loc) · 3.07 KB

README.md

File metadata and controls

65 lines (45 loc) · 3.07 KB

co-uring-webserver

Co-uring-webserver is a simple high performance Web Server written in cpp20 for learning:

  • io_uring support for non-blocking IO
  • write concurrent code using C++20 coroutine

This repo also contains a series of learning materials for c++20 and io_uring, along with demos.

本项目为 C++20 编写的 Web 服务器,可处理静态资源, 同时也包含了一些学习 c++20 与 io_uring 的相关资料:

  • 使用带有 IORING_OP_PROVIDE_BUFFERS 和 IORING_FEAT_FAST_POLL 的 io_uring 技术进行非阻塞 IO 请求,避免系统调用开销以及用户态-内核态内存复制;
  • 采用 c++20 std::coroutine 处理异步回调;
  • TODO: 线程池
  • TODO

demos to learn C++20, io_uring and test benchmark

requirements

  • Linux 5.7 or higher with IORING_FEAT_FAST_POLL and IORING_OP_PROVIDE_BUFFERS required
  • gcc 10.0 or higher

build

Document in Chinese

这里也包含了一些在学习 c++20 与 io_uring 相关知识的时候,翻译和撰写的中文文档,以及对应的原型实现:

benchmark

reference

repos:

articles: