Haywire is an asynchronous HTTP server framework written in C that's built using the event loop based libuv platform layer that node.js is built on top of.
Haywire is an asynchronous HTTP server framework written in C that's built using the event loop based libuv platform layer that node.js is built on top of.
Haywire is an asynchronous HTTP server framework written in C. The goal of Haywire is to learn how to create a server with a minimal feature set that can handle a high rate of requests and connections with as low of latency and resource usage as possible.
Haywire uses the event loop based libuv platform layer that node.js is built on top of (also written in C). libuv abstracts IOCP on Windows and epoll/kqueue/event ports/etc. on Unix systems to provide efficient asynchronous I/O on all supported platforms.
Haywire isn't very useful yet but I wanted to open source it from the very beginning. I started experimenting with a HTTP server for Dazzle queries and I decided I would split it into its own project.
Feel free to join in if you feel like helping progress Haywire. I'm open to new ideas and would love to work with some people instead of by myself!
apt-get install git gcc make cmake automake autoconf libssl-dev libtool./make.shbrew install automake
brew install libtool
brew install openssl
./make.shThese instructions are old but may still work. We need to make Windows support in make.sh.
Open the Developer Command Prompt for Visual Studio
build.batBare metal Rackspace instance
Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz 20 physical cores
../bin/wrk/wrk --script ./pipelined_get.lua --latency -d 5m -t 40 -c 760 http://server:8000 -- 32
Running 5m test @ http://server:8000
40 threads and 760 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 2.04ms 5.38ms 389.00ms 92.75%
Req/Sec 233.38k 48.72k 458.99k 86.19%
Latency Distribution
50% 1.26ms
75% 1.96ms
90% 4.09ms
99% 0.00us
2781077938 requests in 5.00m, 409.23GB read
Requests/sec: 9,267,161.41
Transfer/sec: 1.36GB…There's a production system running Haywire that serves 700 million requests a day from an Aerospike cluster with 2ms or lower response times.
pyrs Python handlers for Haywire.
No open issues yet, or sync has not completed.