Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zyearn/zaver
Yet another fast and efficient HTTP server
https://github.com/zyearn/zaver
c epoll high-performance http-server nginx
Last synced: 7 days ago
JSON representation
Yet another fast and efficient HTTP server
- Host: GitHub
- URL: https://github.com/zyearn/zaver
- Owner: zyearn
- License: mit
- Created: 2014-10-25T02:56:20.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2022-09-02T14:07:42.000Z (over 2 years ago)
- Last Synced: 2025-01-08T03:17:17.737Z (14 days ago)
- Topics: c, epoll, high-performance, http-server, nginx
- Language: C
- Homepage:
- Size: 131 KB
- Stars: 849
- Watchers: 51
- Forks: 242
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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](https://cmake.org/) 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/