Collection of Plugin Architectures in Python
The different plugin architectures available in Python are
- Pluggy
- Yapsy
- Straight Plugin
- Plug n’ Play (PnP)
- Simple Python Plugin Framework
Pluggy
Pluggy is a minimalist production ready plugin development system. This is the core framework used in pytest, tox and devpi projects.
Github: https://github.com/pytest-dev/pluggy/ | Stars: 681
License: MIT
Example Usage: https://github.com/pytest-dev/pluggy/#a-definitive-example
Yapsy
Yapsy stands for Yet Another Plugin SYstem. Its main purpose is to offer a way to easily design a plugin system in Python and only depends on Python’s standard library. Source code of Yapsy is primarily maintained in SourceForge, but is also mirrored at github.
Github: https://github.com/tibonihoo/yapsy | Stars: 163
License: BSD
Example Usage: Yapsy Minimal Example, http://yapsy.sourceforge.net/#getting-started
Straight Plugin
Straight Plugin provides a type of plugin you can create from almost any existing Python modules, and an easy way for outside developers to add functionality and customization to your projects with their own plugins.
Github: https://github.com/ironfroggy/straight.plugin | Stars: 104
License: MIT
Plug n’ Play (PnP)
Plug n’ Play is a generic plugin system inspired by Trac’s internal component management system. It defines interfaces which the plugins implement them. Its a GPL 2.0 license though - so practically can be used only in GPL compatible open source projects and not in commercial ones, where you don’t want to share the source code.
Github: https://github.com/daltonmatos/plugnplay | Stars: 53
License: GPL 2.0
Example Usage: https://github.com/daltonmatos/plugnplay#a-simple-example
Simple Python Plugin Framework
The initial idea of the Simple Python Plugin Framework is from Marty Alchin, a django developer, which is extremely light weight with the basic version requiring less than 10 lines of code. He had released this piece of code to public domain, inviting anyone to build on top of it. A fork of this with porting to Python 3 is done by Regis Decamps, which is available in github.
Github: https://github.com/regisd/simple_plugin_framework | Stars: 5
License: Not Specified
Know of any other Python Plugin Frameworks that you have used/liked? Let us know in the comments :)
Reference Guides
- How to Design and Implement a Plugin Architecture in Python by Mathieu Larose
- Building a Plugin Architecture in Python by Maxwell Mapako
No comments:
Feel free to leave a piece of your mind.