AnyEvent HTTP/1.1 server with websockets
Perl JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Important message

This version of server is almost obsoleted.

New version will be available at

Migration is very simple

What is the reason?

  • Current implementation is rather slow (see benchmarks).
  • Current implementation have a bit bad app design
  • Current implementation have deps, that could be avoided

What is still better in current?

  • New version have no WebSockets support (yet)
  • New version have no dispatch actions (static, dir index, etc) (yet)
  • New version was written from scratch, so bugs is possible at this stage

Why name collision?

This module was not yet released to CPAN, and I found it is the best name for AnyEvent-based HTTP server component.

Sorry for inconvenience.

I've been trying to make new version compatible with old. But there were performance issues and not so good design

For ex: it is almost impossible to upload really big file (for ex: .iso) using old implementation.


Benchmarking tool weighttp -c 100 -n 10000 http://localhost:8080/

Example app HTTP server on port 8080, which should reply with string "Good"

  • AnyEvent::HTTP::Server (current)

    finished in 3 sec, 421 millisec and 143 microsec, 2922 req/s, 278 kbyte/s

  • Twiggy (v0.1021)

    finished in 1 sec, 630 millisec and 908 microsec, 6131 req/s, 272 kbyte/s

  • Starman (--workers 1) (v0.3006)

    finished in 2 sec, 469 millisec and 571 microsec, 4049 req/s, 511 kbyte/s

  • Starman (--workers 4) (best for my 4 core)

    finished in 1 sec, 102 millisec and 631 microsec, 9069 req/s, 1161 kbyte/s

  • AnyEvent::HTTP::Server-II (1 worker)

    finished in 1 sec, 295 millisec and 127 microsec, 7721 req/s, 912 kbyte/s

  • AnyEvent::HTTP::Server-II (4 workers)

    finished in 0 sec, 552 millisec and 381 microsec, 18103 req/s, 2139 kbyte/s