public
Fork of macournoyer/thin
Description: A very fast & simple Ruby web server
Homepage: http://code.macournoyer.com/thin/
Clone URL: git://github.com/rtomayko/thin.git
rtomayko (author)
Sun Jan 18 06:15:16 -0800 2009
commit  f70e6aa7457bcc052f864b768d2641f5ed1f0ea6
tree    cfdb9eb543bc3072512716409adcb7daf265750e
parent  3b7357dcbc165ac546fa51b0f14995a1d37e4912
thin /
name age message
file .gitignore Tue May 20 11:39:56 -0700 2008 update ignored files [kevwil]
file CHANGELOG Fri Jan 16 13:06:30 -0800 2009 Fix error when passing no_epoll option to a clu... [macournoyer]
file COPYING Wed Jan 09 19:29:16 -0800 2008 Add some thing to do [macournoyer]
file README Fri Jul 18 08:39:43 -0700 2008 Runner now remembers -r, -D and -V parameters s... [macournoyer]
file Rakefile Sun Mar 02 12:57:21 -0800 2008 A couple refactorings in rake tasks. [macournoyer]
directory benchmark/ Tue Feb 19 21:24:04 -0800 2008 Add option for keep-alive on abc script [macournoyer]
directory bin/ Fri Feb 01 20:43:41 -0800 2008 Refactoring thin script in several classes: * R... [macournoyer]
directory example/ Sun Sep 28 11:41:33 -0700 2008 Fixed vlad.rake to allow TCP or socket [hellekin]
directory ext/ Sat Jan 03 12:31:13 -0800 2009 thin.c#http_field : omit parsing #defined strin... [jeremyz]
directory lib/ Sun Jan 18 06:15:16 -0800 2009 fuck this shit [rtomayko]
directory script/ Thu Feb 28 18:23:39 -0800 2008 Rename Connector to Backend. Extend Thin::Backe... [macournoyer]
directory site/ Sat Jan 03 12:48:44 -0800 2009 Add hostingrails to users page [macournoyer]
directory spec/ Fri Jan 16 13:06:30 -0800 2009 Fix error when passing no_epoll option to a clu... [macournoyer]
directory tasks/ Sat Jan 10 09:21:26 -0800 2009 Remove COMMITTERS file from gemspec. [macournoyer]
file thin.gemspec Sat Jan 10 09:21:26 -0800 2009 Remove COMMITTERS file from gemspec. [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.

Site:  http://code.macournoyer.com/thin/
Group: http://groups.google.com/group/thin-ruby/topics
Bugs:  http://thin.lighthouseapp.com/projects/7212-thin
Code:  http://github.com/macournoyer/thin
IRC:   #thin on freenode

=== 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

To use Thin with UNIX domain sockets you need EventMachine 0.11.0 from my gem server:

 gem install eventmachine --source http://code.macournoyer.com

=== 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)