Skip to content

thdonearth/TinyWebServer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tiny Web Server

Linux下基于单Reactor多线程模型的Web服务器.

  • 使用epoll(ET模式) + 非阻塞socket, 参考muduo的Channel抽象出socket的事件, epoll触发事件后交给线程池处理.
  • 基于Ragel状态机的HTTP报文解析器, 支持GET和POST请求, 以及200, 400, 403, 404等响应状态. 状态机的头文件参考了大名鼎鼎的http-parser, Ragel的介绍见其主页.
  • 基于阻塞队列和双缓冲的异步日志系统. 参考muduominilog.
  • 简单的线程池实现, 只要往里面塞任务即可. 参考CThreadPool.
  • 基于红黑树(std::set)的定时器管理器. 参考muduo.

TODO

  • 使用epoll的ET模式时, 写操作存在一定问题, 试试直接用LT模式.
  • std::coroutine.
  • 线程池的自动扩缩容, 负载均衡.

References

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published