Woo Save

A fast non-blocking HTTP server on top of libev

Project README

Woo

CI

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?

Benchmark graph

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

Copyright (c) 2014 Eitaro Fukamachi & contributors

License

Licensed under the MIT License.

Open Source Agenda is not affiliated with "Woo" Project. README Source: fukamachi/woo
Stars
1,253
Open Issues
24
Last Commit
4 months ago
Repository
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating