Posted
over 16 years
ago
This release includes a rather large refactoring of the internals. In particular, the core of Ebb was extracted and expanded into a separate C library called libebb.New features in Ebb 0.3 aresupport for chunked requests (transparent)support for
... [More]
chunked responses (set the header "Transfer-Encoding: chunked")support for HTTPS. Use by supplying two extra parameters to the options hash Ebb::start_server(SimpleApp.new,
:port => 4001,
:ssl_cert => "/home/ryan/projects/ebb/benchmark/ca-cert.pem",
:ssl_key => "/home/ryan/projects/ebb/benchmark/ca-key.pem"
)to use HTTPS you must have GnuTLS installed. This is optional.support for pipelined requestsno longer dependent on glibDownload at the RubyForge project page or by runninggem install ebbupdate 0.3.1 fix small bug with chunked responsesupdate 0.3.2 add hack to work with Merb (who doesn't send Content-Length headers even though she should). [Less]
|
Posted
almost 17 years
ago
An evented web server for YARV (Ruby 1.9)Features: rack interface persistant and pipelined requests streaming uploads, each request is in a fiber and will magically yield if you try to read from the request body but the data hasn't arrived yet. (like
... [More]
for large uploads.) to you env['rack.input'] blocks but in reality it never blocks. Uploads are not buffered. responses can also be streamed. see async_example.rb for an example of the interface. (this interface is subject to change!) the event loop is exposed, combining your own event loop watchers with async responses allows you to do access external sockets without blocking (database, memcached, other web servers). supports chunked requests and responses. chunked requests are transparent - it just happens. chunked responses are done when the response header. 'Transfer-Encoding' => 'chunked' is set (case-sensitive)requires revuses the parser from libebb which is based on Mongrel's parser. it does not use the server code from libebb, though (that's the difference between ebb and flow).You can download it by running gem install flow You can start it with:Flow.start_server(ev_loop, rack_app, :port => 5000)
ev_loop.runthe git repo is hereThe next release will support MRI (perhaps without supporting streaming uploads or by using poor man's fibers). I'm still developing Ebb - i hope to have a new release soon. [Less]
|
Posted
almost 17 years
ago
i wrote another web server today. it only works on yarv and it requires rev but it's mostly written in ruby (instead of c).http://github.com/ry/flow/tree/masterit uses fibers and not threads. (maybe i'll add deferred requets later)it should handle
... [More]
chunked uploads (and soon chunked responses)it does pipelined requests too, i thinkbut not ssl.it works like this def on_read(data)
@parser.execute(data)
rescue Ebb::RequestParser::Error
close
end [Less]
|
Posted
almost 17 years
ago
I'm nearing a release of Ebb 0.3. Ebb is a Ruby language (YARV or MRI) web server. The new version is includes a large rewrite of the internals to use my new library libebb. This brings several new features. For example, support for HTTPS (if you
... [More]
have GnuTLS installed), pipelined requests, chunked requests. This is mostly due to the new parser in libebb which eases the implementation of such features.If you'd like to try it out - the following commands might get you started:git clone git://github.com/ry/ebb.git
cd ebb
rake compile
ruby benchmark/application.rbIf you find some bugs I'd love to hear about it :)Hopefully by the end of the week things will stabilize enough to make a GEM release. [Less]
|
Posted
almost 17 years
ago
I added support for HTTPS to libebb using gnutls. Usage should be transparent to the user, just replace ebb_server_init with ebb_secure_server_init. libebb provides a default memory-based SSL session cache; this can be overridden by the user.
|
Posted
almost 17 years
ago
I released ebb-ruby 0.2.1. It has some contributed bug fixes.ebb is a web server library.download it here
|
Posted
about 17 years
ago
Dear Python People,I have a half-working binding of Ebb to Python through the WSGI interface. I would like someone who can code Python-C bindings and has some experience with WSGI to check it out - perhaps fix some things - and try to get Django (or
... [More]
whatever y'all use) running. Is anyone interested? I'd be happy to give you detailed code explanations.ry [Less]
|
Posted
about 17 years
ago
i released ebb-ruby version 0.2- can listen on arbitrary fd and unix domain sockets- supports tcp keep-alive- introduces App#deferred?- bug fixes and clean code clean up
|
Posted
about 17 years
ago
I added a new feature to Ebb-Ruby. If the application responds to the method spawn_thread?, Ebb will pass that method the request environment before dispatching. If spawn_thread? returns true, the request will be handled asynchronously, otherwise
... [More]
synchronously.Previously Ebb had the option to spawn a thread for every request or no request. This allows finer control.The implementation is simplyif app.respond_to?(:spawn_thread?) and !app.spawn_thread?(client.env)
process(app, client)
else
Thread.new(client) { |c| process(app, c) }
endFor example, suppose you have one action POST /upload which will respond slowly because it does image resizes. You can write your application code to spawn those requests into a thread so the Ebb can continue to handle other requests while ImageMagick chugs. The rest of your application is snappy, say, and hence would not need the overhead of spawning a thread for each request.I'm trying to release 0.2 in the next few days - it will include this feature. [Less]
|
Posted
about 17 years
ago
Here are the slides from my talk at euruko about ebbhttp://s3.amazonaws.com/four.livejournal/20080330/euruko.pdf
|