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:
markbates (author)
Tue Apr 22 14:19:10 -0700 2008
commit  5d0a3a0bfd9d3e9d0ea3c0f14a6873f58a6e35ce
tree    b79388293e37c34dd95e4bfe4cf3655ac8747c7b
parent  ce6d00751644715c82044d1194a34fc61ca0823d parent  c8c527bef69c6b795739c6efd0849c41c55c37de
thin /
name age message
folder .gitignore Sat Feb 09 22:30:55 -0800 2008 Instrumenting more code to hunt down potential ... [macournoyer]
folder CHANGELOG Tue Apr 22 05:57:35 -0700 2008 Add changelog for last commit [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 Thu Mar 06 17:27:20 -0800 2008 Doc love [macournoyer]
folder Rakefile Sun Mar 02 12:57:21 -0800 2008 A couple refactorings in rake tasks. [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 example/ Sun Apr 20 16:03:24 -0700 2008 Allow rackup .rb files by getting a conventiona... [bmizerany]
folder ext/ Wed Apr 02 17:20:55 -0700 2008 Port mongrel r996 parser fix to accept some wei... [macournoyer]
folder lib/ Tue Apr 22 14:19:10 -0700 2008 Merge branch 'coreteam' [markbates]
folder script/ Thu Feb 28 18:23:39 -0800 2008 Rename Connector to Backend. Extend Thin::Backe... [macournoyer]
folder site/ Thu Mar 13 18:37:21 -0700 2008 add kluster to users page [giraffesoft]
folder spec/ Sun Apr 20 16:03:24 -0700 2008 Allow rackup .rb files by getting a conventiona... [bmizerany]
folder tasks/ Sat Apr 05 22:12:40 -0700 2008 New win gem name default [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)