Hello Ruby People!
Ebb aims to be a small and fast web server specifically for hosting
dynamic web applications. It is not meant to be a full featured web
server like Lighttpd, Apache, or Nginx. Rather it should be used in
multiplicity behind a load balancer and a front-end server. It is not
meant to serve static files in production.
At one level Ebb is a minimalist C library that ties together the
Mongrel state machine and libev event loop. One can use this library
to drive a web application written in C. (Perhaps for embedded
devices?) However, most people will be interested in the binding of
this library to the Ruby programming language. The binding provides a
Rack server interface that allows it to host Rails, Merb, or other
The Ruby binding is available as a Ruby Gem. It can be install by
gem install ebb
Ebb depends on glib2. If one is using Darwin Ports then the following
should install it: port install glib2.
There are many changes and bug fixes since the last release:
- Can now stream responses
- Supports threaded requests now. Previously it could only process
requests in a sequential manor. If a certain request took very long to
process (say 10 seconds) the entire Ebb instance would hang. Now Ebb
can spawn a new thread for each request to avoid this problem. (Rails
cannot handle threaded requests, so it is disabled for ebb_rails
however Merb users will enjoy this feature.)
- Better memory usage. Previously Ebb was allocating all of it’s
memory statically at start up. Now it allocates on demand.
- API changes - most notably the Ebb::Server class has been removed.
The server is started with Ebb.start_server() now.
I’ve started a mailing list for questions and patches
and moved the official repository to GitHub
Additional information about Ebb can be found at
If you try out Ebb please send me an email about your experiences