woo

A fast non-blocking HTTP server on top of libev

Github stars Tracking Chart

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/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.

Main metrics

Overview
Name With Ownerfukamachi/woo
Primary LanguageCommon Lisp
Program languageRuby (Language Count: 7)
Platform
License:MIT License
所有者活动
Created At2014-10-14 12:30:03
Pushed At2024-09-06 01:48:29
Last Commit At2024-09-06 01:47:59
Release Count0
用户参与
Stargazers Count1.3k
Watchers Count61
Fork Count98
Commits Count422
Has Issues Enabled
Issues Count70
Issue Open Count22
Pull Requests Count41
Pull Requests Open Count4
Pull Requests Close Count8
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private