Mongrel on git
Fetching latest commit…
Cannot retrieve the latest commit at this time
|COPYING||Ruby license applied to all files|
|setup.rb||Update setup.rb to silence errors on shebang replacement. Camping han…|
= Mongrel: Simple Fast Mostly Ruby Web Server Mongrel is a small library that provides a very fast HTTP 1.1 server for Ruby web applications. It is not particular to any framework, and is intended to be just enough to get a web application running behind a more complete and robust web server. What makes Mongrel so fast is the careful use of a C extension to provide fast HTTP 1.1 protocol parsing and fast URI lookup. This combination makes the server scream without too many portability issues. You can view http://mongrel.rubyforge.org for more information. == Quick Start After you've installed (either with gem install mongrel or via source) you should have the mongrel_rails command available in your PATH. Then you just do the following: > cd myrailsapp > mongrel_rails start This will start it in the foreground so you can play with it. It runs your application in production mode. To get help do: > mongrel_rails start -h Finally, you can then start in background mode (probably won't work in win32): > mongrel_rails start -d And you can stop it whenever you like with: > mongrel_rails stop All of which should be done from your application's directory. It writes the PID of the process you ran into log/mongrel.pid. There are also many more new options for configuring the rails runner including changing to a different directory, adding more MIME types, and setting processor threads and timeouts. == Install It doesn't explicitly require Camping, but if you want to run the examples/camping/ examples then you'll need to install Camping 1.2 at least (and redcloth I think). These are all available from RubyGems. The library consists of a C extension so you'll need a C compiler or at least a friend who can build it for you. Finally, the source includes a setup.rb for those who hate RubyGems. == Usage The examples/simpletest.rb file has the following code as the simplest example: require 'mongrel' class SimpleHandler < Mongrel::HttpHandler def process(request, response) response.start(200) do |head,out| head["Content-Type"] = "text/plain" out.write("hello!\n") end end end h = Mongrel::HttpServer.new("0.0.0.0", "3000") h.register("/test", SimpleHandler.new) h.register("/files", Mongrel::DirHandler.new(".")) h.run.join If you run this and access port 3000 with a browser it will say "hello!". If you access it with any url other than "/test" it will give a simple 404. Check out the Mongrel::Error404Handler for a basic way to give a more complex 404 message. This also shows the DirHandler with directory listings. This is still rough but it should work for basic hosting. *File extension to mime type mapping is missing though.* == Contact E-mail zedshaw at zedshaw.com and I'll help. Comments about the API are welcome.