2.10 OSGi Framework Implementations
At the time of this writing there have been four major revisions of the OSGi specifications. Over the ten-year history of OSGi there have been many implementations. The current R4.x specifications are implemented by several open-source and commercial entities:
- Equinox—Perhaps the most widely used open-source OSGi implementation, Equinox is the base runtime for all Eclipse tooling, rich client, server-side, and embedded projects. It is also the reference implementation for the core framework specification, several service specifications, and JSR 291. It is available under the Eclipse Public License from http://eclipse.org/equinox.
- Felix—Originally the Oscar project, the Felix open-source project at Apache supplies a framework implementation as well as several service implementations. It is available under the Apache License v2 from http://felix.apache.org.
- Knopflerfish—The Knopflerfish open-source project supplies an R4.x framework implementation as well as several service implementations. It is available under a BSD-style license from http://knopflerfish.org.
- mBedded Server—This commercial R4.x implementation from ProSyst is used in a number of embedded application areas. ProSyst offers several additional service implementations. It is available under commercial terms from http://prosyst.com.
- Concierge—Concierge is an open-source highly optimized and minimized R3.0 specification implementation that is suitable for use in small embedded scenarios. It is available under a BSD-style license from http://concierge.sourceforge.net.
Despite the many features and functions included in the base framework, implementations are very small and run on minimal JVM implementations. Concierge weighs in at a mere 80K disk footprint. The base specification-compliant parts of R4.x implementations tend to have a 300–600K disk footprint. Implementations such as Equinox include considerable additional functionality such as enhanced flexibility, advanced signature management, and high scalability in their base JARs but still stay under 1M on disk.