All Projects → zyearn → Zaver

zyearn / Zaver

Licence: mit
Yet another fast and efficient HTTP server

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Zaver

Lotos
tiny but high-performance HTTP Server
Stars: ✭ 140 (-79.2%)
Mutual labels:  epoll, nginx, http-server
WebServer
High-performance multi-threaded tcp network server in c++11
Stars: ✭ 58 (-91.38%)
Mutual labels:  http-server, epoll
Envelop.c
🌊 Thread-less, event-loop based tiny http-server from scratch using epoll. Learning Purpose.
Stars: ✭ 75 (-88.86%)
Mutual labels:  epoll, http-server
fancy
High performance web server
Stars: ✭ 20 (-97.03%)
Mutual labels:  http-server, epoll
Evpp
A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.
Stars: ✭ 2,850 (+323.48%)
Mutual labels:  high-performance, http-server
Webcpp
用C++开发web服务器框架
Stars: ✭ 23 (-96.58%)
Mutual labels:  epoll, http-server
Mongols
C++ high performance networking with TCP/UDP/RESP/HTTP/WebSocket protocols
Stars: ✭ 250 (-62.85%)
Mutual labels:  epoll, http-server
Firefly
Firefly is an asynchronous web framework for rapid development of high-performance web application.
Stars: ✭ 277 (-58.84%)
Mutual labels:  high-performance, http-server
toyhttpd
I/O 模型练手代码,分别使用阻塞式 I/O、select、poll 和 epoll 和 Java NIO 实现了简单的 HTTP Server
Stars: ✭ 43 (-93.61%)
Mutual labels:  http-server, epoll
epump
ePump是一个基于I/O事件通知、非阻塞通信、多路复用、多线程等机制开发的事件驱动模型的 C 语言应用开发框架,利用该框架可以很容易地开发出高性能、大并发连接的服务器程序。
Stars: ✭ 26 (-96.14%)
Mutual labels:  high-performance, epoll
Smtpd
A Lightweight High Performance ESMTP email server
Stars: ✭ 175 (-74%)
Mutual labels:  high-performance, nginx
Facebooc
Yet another Facebook clone written in C
Stars: ✭ 483 (-28.23%)
Mutual labels:  epoll, http-server
Tesla
Tesla is a gateway service that provides dynamic routing,waf,support spring cloud,gRPC,DUBBO and more.
Stars: ✭ 161 (-76.08%)
Mutual labels:  high-performance, http-server
Zeus
A high performance, cross-platform Internet Communication Engine. Developed with native socket API. Aim at handling millions of concurrent connections.
Stars: ✭ 30 (-95.54%)
Mutual labels:  epoll, high-performance
Netty Rest
Yet another high performance REST server based on Netty
Stars: ✭ 107 (-84.1%)
Mutual labels:  high-performance, http-server
Mofuw
mofuw is *MO*re *F*aster, *U*ltra minimal *W*ebserver.
Stars: ✭ 107 (-84.1%)
Mutual labels:  high-performance, http-server
Cowboy
Small, fast, modern HTTP server for Erlang/OTP.
Stars: ✭ 6,533 (+870.73%)
Mutual labels:  high-performance, http-server
Sylar
C++高性能分布式服务器框架,webserver,websocket server,自定义tcp_server(包含日志模块,配置模块,线程模块,协程模块,协程调度模块,io协程调度模块,hook模块,socket模块,bytearray序列化,http模块,TcpServer模块,Websocket模块,Https模块等, Smtp邮件模块, MySQL, SQLite3, ORM,Redis,Zookeeper)
Stars: ✭ 895 (+32.99%)
Mutual labels:  high-performance, http-server
Mgx
🌈 A high performance network framework written in c++ (support tcp and http)
Stars: ✭ 15 (-97.77%)
Mutual labels:  http-server, epoll
Webserver
A C++ High Performance Web Server
Stars: ✭ 4,164 (+518.72%)
Mutual labels:  epoll, http-server

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/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].