Welcome to iPOPO

iPOPO logo

iPOPO is a Python-based Service-Oriented Component Model (SOCM) based on Pelix, a dynamic service platform. They are inspired by two popular Java technologies for the development of long-lived applications: the iPOJO component model and the OSGi Service Platform. iPOPO enables the conception of long-running and modular IT services.

This documentation is divided into three main parts. The Quickstart will guide you to install iPOPO and write your first components. The Reference Cards section details the various concepts of iPOPO. Finally, the Tutorials explain how to use the various built-in services of iPOPO. You can also take a look at the slides of the iPOPO tutorial to have a quick overview of iPOPO.

This documentation is inspired by the Flask’s one.

iPOPO depends on a fork of jsonrpclib, called jsonrpclib-pelix. The documentation of this library is available on GitHub.

Usage survey

In order to gain insight from the iPOPO community, I’ve put a really short survey on Google Forms (no login required).

Please, feel free to answer it, the more answers, the better. All feedback is really appreciated, and I’ll write about the aggregated results on the users’ mailing list, once enough answers will have been received.

State of this documentation

This documentation is a work in progress, starting nearly from scratch.

The previous documentation was provided as a wiki on a dedicated server which I had to take down due to many reasons (DoS attacks, update issues, …). As a result, the documentation is now hosted by Read the Docs. The main advantages are that it is now included in the Git repository of the project, and it can include docstrings directly from the source code.

Alas, the wiki content must be completely rewritten in reStructuredText format. I take this opportunity to update the documentation, but it takes a lot of time, and I can’t work on this project as much as I’d like to. So, if you have any question which hasn’t been answered in the current documentation, please ask on the users’ mailing list.

As always, all contributions to the documentation and the code are very appreciated.

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.