Skip to content

A C++ High Performance Web Server using io_uring and cpp20 coroutine

License

Notifications You must be signed in to change notification settings

yunwei37/co-uring-WebServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

About

A C++ High Performance Web Server using io_uring and cpp20 coroutine

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published