All Projects → lithdew → hello

lithdew / hello

Licence: other
Multi-threaded cross-platform HTTP/1.1 web server example in Zig.

Programming Languages

Zig
133 projects

Projects that are alternatives of or similar to hello

rawhttp
HTTP library to make it easy to deal with raw HTTP.
Stars: ✭ 156 (+437.93%)
Mutual labels:  http-server
Polyel-Framework
⚡️ Voltis Core: A PHP framework based on Swoole from the ground up
Stars: ✭ 22 (-24.14%)
Mutual labels:  http-server
blog
✍️无他术,唯勤读书而多为之,自工。
Stars: ✭ 62 (+113.79%)
Mutual labels:  http-server
LightWebServer
Java web server using NIO, compatible with http1.1 and support simple MVC function.
Stars: ✭ 38 (+31.03%)
Mutual labels:  http-server
finch-server
Some base classes and configuration used for making a server using finch
Stars: ✭ 23 (-20.69%)
Mutual labels:  http-server
Pyro-FileStreamBot
Stream Telegram files to web
Stars: ✭ 38 (+31.03%)
Mutual labels:  http-server
fastglue
Fastglue is an opinionated, bare bones wrapper that glues together fasthttp and fasthttprouter to act as a micro HTTP framework.
Stars: ✭ 71 (+144.83%)
Mutual labels:  http-server
EasyDSS
high performance,industrial rtmp streaming server,a lot of optimization on http,rtmp,hls,http-flv,streaming relay(rtmp pull relay/rtmp push relay),KeyFrame cache,GOP cache,RESTful,and recording, playback, record-download,web management. EasyDSS高性能RTMP流媒体服务器,支持RTMP推流,同步输出HTTP、RTMP、HLS、HTTP-FLV,支持推流分发/拉流分发,支持秒开、GOP缓冲、录像、检索、回放、录像下载、网页管理等多种功能,是目前市面上…
Stars: ✭ 34 (+17.24%)
Mutual labels:  http-server
PuppyProxy
A simple HTTP proxy in C# including support for HTTP CONNECT tunneling
Stars: ✭ 37 (+27.59%)
Mutual labels:  http-server
http-server-online
Start a local HTTP server without any tools, just open a web page.
Stars: ✭ 602 (+1975.86%)
Mutual labels:  http-server
stirfry
StirFry is a self contained and lightweight web framework for nodejs
Stars: ✭ 24 (-17.24%)
Mutual labels:  http-server
gowebview
tool to build android apps with WebView from your golang http server; moved to gitlab.com/microo8/gowebview
Stars: ✭ 35 (+20.69%)
Mutual labels:  http-server
ComplexHTTPServer
ComplexHTTPServer - A Multithreaded Python SimpleHTTPServer
Stars: ✭ 37 (+27.59%)
Mutual labels:  http-server
HTTP-Reverse-Shell
An HTTP Reverse Shell in Python
Stars: ✭ 48 (+65.52%)
Mutual labels:  http-server
simple-http
Simple, portable HTTP server for .NET based on HttpListener.
Stars: ✭ 74 (+155.17%)
Mutual labels:  http-server
routy
Routy is a lightweight high performance HTTP request router for Racket
Stars: ✭ 20 (-31.03%)
Mutual labels:  http-server
tracetrout
A magical reverse traceroute HTTP(S) server
Stars: ✭ 48 (+65.52%)
Mutual labels:  http-server
phpkoa
PHP异步编程: 基于 PHP 实(chao)现(xi) NODEJS web框架 KOA。
Stars: ✭ 52 (+79.31%)
Mutual labels:  http-server
gotor
This program provides efficient web scraping services for Tor and non-Tor sites. The program has both a CLI and REST API.
Stars: ✭ 97 (+234.48%)
Mutual labels:  http-server
v4l2web
V4L2 web interface
Stars: ✭ 20 (-31.03%)
Mutual labels:  http-server

hello

Multi-threaded cross-platform HTTP/1.1 web server example in Zig using lithdew/pike and kprotty/zap.

Warning

This example is barebones and highly experimental. Linux and Mac has been extensively tested, with Windows only being barely supported.

pike does not yet support cancellation of pending I/O operations on Windows, which causes this example to fail spontaneously should one initiate a graceful shutdown on Windows.

Setup

This example requires a nightly version of Zig. Make sure that port 9000 is available.

git clone --recurse-submodules https://github.com/lithdew/hello
cd hello && zig run hello.zig

Benchmarks

$ cat /proc/cpuinfo | grep 'model name' | uniq
model name : Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz

$ wrk -t12 -c100 -d30s http://127.0.0.1:9000
Running 30s test @ http://127.0.0.1:9000
  12 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   417.19us    0.90ms  30.21ms   96.78%
    Req/Sec    26.86k     3.31k   39.72k    73.08%
  9629837 requests in 30.04s, 459.19MB read
Requests/sec: 320538.80
Transfer/sec:     15.28MB
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].