Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


You might be wondering why the Rack library is vendored, and why we don't
just depend on the Rack gem. The reason for this is because there are broken
applications out there that have a hard dependency on rack == 0.4.0 (the
latest version of Rack is 1.0.0 at the time of writing). If Passenger
depends on the Rack gem, then the application will crash with a gem version
conflict error upon executing 'gem "rack", "=0.4.0"'.

To fix this conflict, we vendor Rack. When we load our vendored Rack library,
it won't be registered as a gem, so no RubyGems version conflict exception
will be raised. This vendored version is commit 884770528a3, slightly older
than the 1.0.0 release.

Rack is mostly backwards-compatible so there shouldn't be any problems.
Something went wrong with that request. Please try again.