OSGi is a dynamic module system for Java that allows bundles (JAR files with manifests) to be installed, started, stopped, updated, and uninstalled without requiring a reboot. Bundles export and import packages through an extensible services registry that supports automatic dependency resolution and version management. Existing Java applications and libraries can be wrapped as OSGi bundles by adding manifest information. For example, the Jetty web server and Muffin HTTP proxy server were packaged as OSGi bundles.