Ebb web server version 0.0.3

Ebb aims to be a small and fast web server, written in C, specifically
for hosting web frameworks like Rails and Merb.

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.

Because Ebb is written in C, other language bindings can be added to
make it useful to Non-Ruby frameworks. For example, a Python WSGI
interface is forthcoming.



for downloads and more information. Please note that Ebb depends on
having Glib installed.

Release 0.0.3 includes many bug fixes that were encountered after the
first release. Mostly related installation and the ebb_rails

If you have problems, please send me a bug report:)


I don't know if it's a bug, but I've found that Ebb uses much more
memory than Mongrel or Thin.
This is my application's memory usage after 1000 requests (on my Mac,
I've yet to test it on other systems):

Ebb: RSIZE=35M, VSIZE=258M (started at 255M right after launch)
Thin: RSIZE=31M, VSIZE=47M
Mongrel: RSIZE=33M, VSIZE=49M

what puzzles me is the abnormal VSIZE value for Ebb...


Just a few clarifications to prevent any confusion as to what's
written on your website:

First: EventMachine is not a ruby binding to libevent. EM is a
reactor-based network communication library. See it as Twisted Python
for Ruby. EM doesn't even use libev / libevent underneath because of
cross-platform compatibility concerns.

Second: EventMachine is a Ruby extension written in C++ (and being
ported over to C). There is a pure ruby version of it as well, but
that's for those who don't want to deal with extensions and of course
don't need the speed of C++. I put this because the page seems to make
the assumption that EM is written purely in Ruby.


That's correct! No, that would be not optimal. In ebb.c I've been
playing with larger buffer-sizes and concurrent clients- apparently
that wasn't reset in the release!

#define EBB_BUFFERSIZE (1024 * (80 + 32) * 2)
#define EBB_MAX_CLIENTS 950

That would make EBB_BUFFERSIZE * EBB_MAX_CLIENTS = 217907200 bytes =
207.8 megabytes.

Try something more reasonable for those values. E.G.

#define EBB_BUFFERSIZE (1024 * 120)
#define EBB_MAX_CLIENTS 200

I will bring down these values in the next release.


Hi Jason,

Thank you for the correction. I'm not sure why I was under this
impression - I'll update the site.