woo
woo copied to clipboard
A fast non-blocking HTTP server on top of libev
Woo
Woo is a fast non-blocking HTTP server built on top of libev. Although Woo is written in Common Lisp, it aims to be the fastest web server written in any programming language.
Warning
This software is still BETA quality.
How fast?
See benchmark.md for the detail.
Usage
Start a server
(ql:quickload :woo)
(woo:run
(lambda (env)
(declare (ignore env))
'(200 (:content-type "text/plain") ("Hello, World"))))
Start with Clack
(ql:quickload :clack)
(clack:clackup
(lambda (env)
(declare (ignore env))
'(200 (:content-type "text/plain") ("Hello, World")))
:server :woo
:use-default-middlewares nil)
Cluster
(woo:run
(lambda (env)
(declare (ignore env))
'(200 (:content-type "text/plain") ("Hello, World")))
:worker-num 4)
Signal handling
When the master process gets these signals, it kills worker processes and quits afterwards.
- QUIT: graceful shutdown, waits for all requests are finished.
- INT/TERM: shutdown immediately.
Benchmarks
See benchmark.md.
Installation
Woo has switched the backend from cl-async to libev after the latest Quicklisp dist release. If you're gonna run the benchmarks by your own, please use the latest one.
Requirements
- UNIX (GNU Linux, Mac, *BSD)
- SBCL
- libev
Installing via Quicklisp
(ql:quickload :woo)
See Also
Author
- Eitaro Fukamachi ([email protected])
Copyright
Copyright (c) 2014 Eitaro Fukamachi & contributors
License
Licensed under the MIT License.