Skip to content

CharleneHu-42/TKeed

 
 

Repository files navigation

TKeed WebServer

TKeed is a high performance HTTP WebServer uses the Reactor model. Code normative and functional scalability are close to the industry level. The project will be updated until feature have been completed. Have a fun. SYSU, TeeKee.

info

Dev Document

Part Ⅰ Part Ⅱ Part Ⅲ Part Ⅳ Part Ⅴ Part Ⅵ Part Ⅷ Part Ⅸ Part Ⅹ
项目目的 并发模型 核心结构 整体架构 主要函数 遇到的困难 测试及改进 背景知识 使用教程

Dev Environment

Dev Tool

  • 操作系统:Ubuntu 16.04

  • 编辑器:Sublime + Vim

  • 编译器:gcc 5.4.0

  • 单元测试:gtest

  • 版本控制:git

  • 代码结构:Understand + callgraph

  • 集成环境:Clion

Other


Timeline

Now

  • v1.0已经完成,本地已调试通过。提交到GitHub上的代码会由Travis自动构建。

    特性:

    • 添加Timer定时器,定时回调handler处理超时请求

      • 高效的小根堆结构

      • 惰性删除方式

    • 实现了HTTP长连接传输数据

      • 非阻塞I/O

      • epoll边缘触发模式(ET)

    • 线程池操作及其同步互斥管理

      • 调度选项

        • 队列式FIFO调度模式

        • 加入优先级的优先队列 (+)

    • 使用状态机解析HTTP协议,非简单字符串匹配方式解析请求

  • v1.1修改了CPU负载较高问题,修改后1000并发各线程(4worker)CPU使用率10%左右。

Feature

  • v2.0实现Json解释器解析配置

  • v3.0实现FastCGI(功能扩展)

  • v4.0实现服务器缓存(性能加速)

  • v5.0实现反向代理(安全性及负载均衡)


Build Status license


About

🌎 High Performance HTTP WebServer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 60.1%
  • Makefile 17.3%
  • C++ 13.9%
  • CMake 8.2%
  • HTML 0.5%