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.
This software is still BETA quality.
See benchmark.md for the detail.
Use clack:clackup
or woo:run
to start a web server. The first argument is a Lack "app". See Lack's README for instruction on how to build it.
Remember to pass ":debug nil" to turn off the debugger mode on production environments (it's on by default). Otherwise, your server will go down on internal errors.
(ql:quickload :woo)
(woo:run
(lambda (env)
(declare (ignore env))
'(200 (:content-type "text/plain") ("Hello, World"))))
(ql:quickload :clack)
(clack:clackup
(lambda (env)
(declare (ignore env))
'(200 (:content-type "text/plain") ("Hello, World")))
:server :woo
:use-default-middlewares nil)
(woo:run
(lambda (env)
(declare (ignore env))
'(200 (:content-type "text/plain") ("Hello, World")))
:worker-num 4)
Use SSL key arguments of woo:run
or clack:clackup
.
(woo:run app
:ssl-cert-file #P"path/to/cert.pem"
:ssl-key-file #P"path/to/key.pem"
:ssl-key-password "password")
(clack:clackup app
:ssl-cert-file #P"path/to/cert.pem"
:ssl-key-file #P"path/to/key.pem"
:ssl-key-password "password")
To disable the HTTPS support to omit a dependency on CL+SSL, add woo-no-ssl
to cl:*features*
.
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.
See benchmark.md.
- UNIX (GNU Linux, Mac, *BSD)
- SBCL
- libev
- OpenSSL or LibreSSL (Optional)
- To turn off SSL, add
:woo-no-ssl
tocl:*features*
before loading Woo.
- To turn off SSL, add
(ql:quickload :woo)
- Dockerfile for Quickdocs's API server.
- Eitaro Fukamachi (e.arrows@gmail.com)
Copyright (c) 2014 Eitaro Fukamachi & contributors
Licensed under the MIT License.