public
Description: web server
Homepage:
Clone URL: git://github.com/ry/flow.git
ry (author)
Thu Aug 21 07:15:42 -0700 2008
commit  c8e9133bce15d1c2c41ddf26f3f3bbe767c29a49
tree    1f9aff64118ed5dbe9794ece56acd3cd4e50b2d8
parent  1c853c96384afb981341491d5206a708bd7dff66 parent  1a99e2b75334e320af63c6a3576f30eb25885220
flow /
name age message
file README Sat Aug 09 06:29:30 -0700 2008 remove unicode from readme (fucks up rubygems?) [ry]
file Rakefile Thu Aug 14 04:57:25 -0700 2008 some fixes, and profiling code [ry]
file application.rb Thu Aug 07 08:50:49 -0700 2008 small fixes to get chunked encoding working [ry]
file async_example.rb Thu Aug 14 04:57:25 -0700 2008 some fixes, and profiling code [ry]
directory ext/ Fri Aug 08 13:33:35 -0700 2008 rename Ebb::RequestParser -> Flow::Parser [ry]
directory lib/ Thu Aug 21 07:15:42 -0700 2008 Merge branch 'master' of git://github.com/daesa... [ry]
README
A web server for YARV.

Features:
 - rack interface

 - persistant and pipelined requests

 - async 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
   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
   the api for this is subject to change. 

 - the event loop is exposed, combining your own event loop watchers with
   async responses allows you to do access the database without blocking

 - 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 REV!! (which is written by Tony Arcieri)

uses the parser from libebb http://tinyclouds.org/libebb/ which is based on
Mongrel's parser

## (The MIT) License

Copyright (c) 2008 [Ryah Dahl](http://tinyclouds.org) (ry at tiny clouds dot org)

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.