public
Description: A very fast & simple Ruby web server
Homepage: http://code.macournoyer.com/thin/
Clone URL: git://github.com/macournoyer/thin.git
Search Repo:
macournoyer (author)
Mon Apr 07 19:09:48 -0700 2008
commit  747a41479340d52976aa067c3e93198a40d74627
tree    354de35f74bf9ed1b063f09781b799017d8604d8
parent  86dd5e916aee6553ba0936e9b356c43a53f46b17
thin /
name age message
folder .gitignore Wed Mar 26 19:00:01 -0700 2008 Use pool to allocate read buffers [macournoyer]
folder CHANGELOG Sun Mar 02 11:32:21 -0800 2008 Load cgi_multipart_eof_fix if Ruby 1.8.5, close... [macournoyer]
folder COMMITTERS Wed Jan 16 23:15:01 -0800 2008 sync with main repo, tweak rakefile(s) again fo... [kevwil]
folder COPYING Wed Jan 09 19:29:16 -0800 2008 Add some thing to do [macournoyer]
folder README Mon Feb 11 19:29:29 -0800 2008 update README [macournoyer]
folder Rakefile Thu Mar 27 21:51:50 -0700 2008 Add error handling to parser [macournoyer]
folder benchmark/ Tue Feb 19 21:24:04 -0800 2008 Add option for keep-alive on abc script [macournoyer]
folder bin/ Fri Feb 01 20:43:41 -0800 2008 Refactoring thin script in several classes: [macournoyer]
folder doc/ Sun Dec 16 15:28:13 -0800 2007 Update benchmarks and web site [macournoyer]
folder example/ Thu Feb 14 19:50:38 -0800 2008 Make god example file work w/ tcp cluster (port... [macournoyer]
folder ext/ Mon Apr 07 19:09:48 -0700 2008 Add timeout watcher [macournoyer]
folder lib/ Sun Mar 02 11:32:21 -0800 2008 Load cgi_multipart_eof_fix if Ruby 1.8.5, close... [macournoyer]
folder script/ Thu Feb 28 18:23:39 -0800 2008 Rename Connector to Backend. Extend Thin::Backe... [macournoyer]
folder site/ Sun Mar 02 07:31:34 -0800 2008 Add Steve Purcell sites to users page [macournoyer]
folder spec/ Sun Mar 02 10:09:01 -0800 2008 hack hack hack! sleeping 2 sec before testing s... [macournoyer]
folder tasks/ Thu Mar 27 21:51:50 -0700 2008 Add error handling to parser [macournoyer]
folder test/ Fri Mar 28 23:25:10 -0700 2008 Fix pfree error when pointer not in first pool ... [macournoyer]
README
== Thin
Tiny, fast & funny HTTP server

Thin is a Ruby web server that glues together 3 of the best Ruby libraries in web history:
* the Mongrel parser: the root of Mongrel speed and security
* Event Machine: a network I/O library with extremely high scalability, performance and stability
* Rack: a minimal interface between webservers and Ruby frameworks

Which makes it, with all humility, the most secure, stable, fast and extensible Ruby web server
bundled in an easy to use gem for your own pleasure.

=== Installation
For the latest stable version:

 sudo gem install thin

or using my mirror (might be more recent and unstable):

 sudo gem install thin --source http://code.macournoyer.com

Or from source:

 git clone git://github.com/macournoyer/thin.git
 cd thin
 rake install

=== Usage
A +thin+ script offers an easy way to start your Rails application:

 cd to/your/rails/app
 thin start

But Thin is also usable with a Rack config file.
You need to setup a config.ru file and pass it to the thin script:
  
 cat config.ru
 app = proc do |env|
  [
    200,
    {
      'Content-Type' => 'text/html',
      'Content-Length' => '2'
    },
    ['hi']
  ]
 end
 
 run app

 thin start -r config.ru
 
See example directory for more samples and run 'thin -h' for usage.

=== License
Ruby License, http://www.ruby-lang.org/en/LICENSE.txt.

=== Credits
The parser was stolen from Mongrel http://mongrel.rubyforge.org by Zed Shaw.
Mongrel Web Server (Mongrel) is copyrighted free software by Zed A. Shaw
<zedshaw at zedshaw dot com> You can redistribute it and/or modify it under
either the terms of the GPL.

Thin is copyright Marc-Andre Cournoyer <macournoyer@gmail.com>

Get help at http://groups.google.com/group/thin-ruby/
Report bugs at http://thin.lighthouseapp.com/projects/7212-thin
and major security issues directly to a team member (see COMMITTERS)