Welcome to iPOPO

iPOPO logo

iPOPO is a Python-based Service-Oriented Component Model (SOCM) built on top of Pelix, a dynamic service platform. It helps building modular, long-running applications from loosely coupled components and services, with explicit lifecycle management and runtime composition.

It is especially relevant for software engineers building gateways, automation stacks, distributed backends and extensible platforms that need operational visibility and controlled evolution over time.

The framework adapts to Python ideas popularized by iPOJO and OSGi. It was designed by Thomas Calmant in his PhD Thesis (in French), in continuity with the earlier iPOJO work by Clément Escoffier.

Important

This documentation targets the current iPOPO 3.x line and Python 3.10+.

Why iPOPO

  • Runtime-managed components with explicit lifecycle and dependency injection.

  • A service registry with dynamic binding between providers and consumers.

  • Built-in operational tooling such as the Pelix shell, Configuration Admin, Event Admin, HTTP services and remote service support.

  • A Python-first developer experience with regular modules, type hints and Protocol-based service specifications.

Start here

This documentation is divided into three main parts. The quickstart guides you through installation and your first components. The reference cards detail the core concepts, decorators and services. The tutorials show how to use the built-in services in real examples.

If you are evaluating the project for adoption, also look at who uses iPOPO and the release notes. You can also take a look at the slides of the iPOPO tutorial to have a quick overview of iPOPO.

Project license

iPOPO is released under the terms of the Apache Software License 2.0. It depends on a fork of jsonrpclib, named jsonrpclib-pelix. The documentation of this library is available on GitHub.

Support

If you have any question which hasn’t been answered in the documentation, please ask on the users’ mailing list or in the GitHub Discussions.

As always, all contributions to the documentation and the code are very appreciated: bugs and features requests can be submitted using the Issue Tracker on GitHub. Questions about the development of iPOPO itself should be asked on the developers’ mailing list or in the GitHub Discussions.

User’s Guide

This chapter details how to install and use iPOPO.

API Reference

If you are looking for information on a specific function, class or method, this part of the documentation is for you.

Additional Notes

Design notes, legal information and changelog are here for the interested.