GemPlugin is a system that lets your users install gems and lets you load them as additional features to use in your software. It originated from the Mongrel (mongrel.rubyforge.org) project but proved useful enough to break out into a separate project. GemPlugin works by listing the gems installed, and doing a require_gem on any that have the right dependencies. For example, if a gem depends on "gem_plugin" and "mongrel" then it will load as a Mongrel plugin. This makes it so that users of the plugins only need to gem install (and maybe config a bit), and plugin authors only need to make gems.