haywire/haywire logo

haywire/haywire

Free

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.

FreeFree tier
Type
Open Source

About haywire/haywire

Haywire is an asynchronous HTTP server framework written in C, built on the libuv platform layer used by Node.js. Its goal is to achieve high request throughput and connection handling with minimal latency and resource usage. It supports cross-platform deployment (Windows, Linux, OSX), HTTP keep-alive, pipelining, non-blocking I/O, and SO_REUSEPORT for multi-process/multi-threaded load balancing across CPU cores. The project is experimental and open-sourced from the early stages, with plans for HTTP handler routing, SPDY support, and language bindings (JVM, CLR). Benchmarks demonstrate over 9 million requests per second on a 20-core server.

Key Features

Cross-platform (Windows, Linux, OSX)
HTTP keep-alive support
HTTP pipelining
Non-blocking I/O using libuv
SO_REUSEPORT multi-process and multi-threaded load balancing across CPU cores
Event-loop based asynchronous architecture

Pros & Cons

Pros
  • Extremely high throughput (over 9 million requests/sec in benchmarks)
  • Low latency and minimal resource usage
  • Cross-platform support (Windows, Linux, OSX)
  • Utilizes libuv for efficient asynchronous I/O
  • Open source with permissive license
Cons
  • Experimental and not production-ready according to author
  • Limited feature set (no routing, no SPDY yet)
  • Sparse documentation and community
  • Requires compilation and dependency management

Best For

High-performance HTTP server developmentLearning asynchronous server design in CBenchmarking and performance testingBuilding lightweight, low-latency web services

FAQ

Is Haywire production-ready?
No, the author states that 'Haywire isn't very useful yet' and it is open-sourced from the early experimental stages.
What platforms does Haywire support?
Haywire supports cross-platform deployment on Windows, Linux, and OSX.
What are the dependencies for building Haywire?
On Linux: git, gcc, make, cmake, automake, autoconf, libssl-dev, libtool. On Mac OSX: automake, libtool, openssl. On Windows: Visual Studio Developer Command Prompt and build.bat.
Does Haywire support HTTP keep-alive and pipelining?
Yes, Haywire supports HTTP keep-alive and HTTP pipelining.