Grack

Archived Ruby 2009

Git's Smart HTTP server protocol as a Rack app, so any Ruby web server could host Git repositories.

Git ships a Smart HTTP backend called git-http-backend, but it only runs as a CGI script and is really only targeted at Apache 2.x — it expects PATH_INFO to be set and formatted a particular way.

Grack reimplements that handler as a Rack application. Once the protocol lives in Rack, any Ruby web server can serve Git over HTTP: Unicorn, Thin, Passenger, WEBrick, whatever you already run.

I wrote about how the Smart HTTP protocol actually works in Smart HTTP Transport.

The gem is now developed at grackorg/grack; my repository isn’t updated any more.