Skip to content

ShredderMing/woo

 
 

Repository files navigation

Woo

Build Status

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: 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

Copyright (c) 2014-2016 Eitaro Fukamachi & contributors

License

Licensed under the MIT License.

About

A fast non-blocking HTTP server on top of libev

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Common Lisp 97.8%
  • Shell 1.1%
  • Other 1.1%