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
Thanks, ry