Ebb 0.1.0

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

The Ruby binding is available as a Ruby Gem. It can be install by executing

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 http://groups.google.com/group/ebbebb and moved the official repository to GitHub http://github.com/ry/ebb/tree/master. Additional information about Ebb can be found at http://ebb.rubyforge.org/

If you try out Ebb please send me an email about your experiences :slight_smile:

Thanks, ry