zaver

Yet another fast and efficient HTTP server

Github stars Tracking Chart

Zaver

Yet another fast and efficient HTTP server.

purpose

The purpose of Zaver is to help developers understand how to write a high performance server based on epoll. Although Nginx is a good learning example, its complexity and huge code base make people discouraged. Zaver uses as few codes as possible to demonstrate the core structure of high performance server like Nginx. Developers can lay a solid foundation by learning Zaver for further study in network programming.

programming model

  • epoll
  • non-blocking I/O
  • thread-pool

compile and run (for now only support Linux2.6+)

please make sure you have cmake installed.

mkdir build && cd build
cmake .. && make
cd .. && ./build/zaver -c zaver.conf

support

  • HTTP persistent connection
  • browser cache
  • timer(use binary heap instead of rbtree used in Nginx)

todo

  • sendfile
  • proxy
  • FastCGI
  • other HTTP/1.1 features
  • memory pool
  • WebDAV?

more details

https://zyearn.github.io/blog/2015/05/16/how-to-write-a-server/

Main metrics

Overview
Name With Ownerzyearn/zaver
Primary LanguageC
Program languageC (Language Count: 4)
Platform
License:MIT License
所有者活动
Created At2014-10-25 02:56:20
Pushed At2022-09-02 14:07:42
Last Commit At2020-12-15 15:56:32
Release Count0
用户参与
Stargazers Count852
Watchers Count50
Fork Count242
Commits Count65
Has Issues Enabled
Issues Count20
Issue Open Count6
Pull Requests Count2
Pull Requests Open Count0
Pull Requests Close Count2
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private