https://github.com/pyplugin/pyplugin
Plugin Framework Library for Python
https://github.com/pyplugin/pyplugin
plugin plugin-manager pyplugin
Last synced: about 1 month ago
JSON representation
Plugin Framework Library for Python
- Host: GitHub
- URL: https://github.com/pyplugin/pyplugin
- Owner: pyplugin
- License: mit
- Created: 2023-07-30T17:03:11.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-07-19T23:52:38.000Z (7 months ago)
- Last Synced: 2025-12-01T12:35:09.326Z (3 months ago)
- Topics: plugin, plugin-manager, pyplugin
- Language: Python
- Homepage:
- Size: 103 KB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# pyplugin

[](https://codecov.io/github/pyplugin/pyplugin)
[](https://raw.githubusercontent.com/pyplugin/pyplugin/main/LICENSE)
[](https://pyplugin.readthedocs.io/en/stable/?badge=stable)

[](https://github.com/psf/black)
Pyplugin is a plugin framework library, supporting declarative-style plugin writing, allowing modular, swappable
functionality in any codebase.
See
[Getting Started](https://pyplugin.readthedocs.io/en/latest/getting_started.html) for more.
| Version Name | Latest Tag | Release Notes | Patch Notes | Documentation | Release Date | End Support Date |
|--------------|------------|---------------------------------------------------------------------------|-------------------------------------------------------------------------|----------------------------------------------------------|--------------|------------------|
| 0.6 | v0.6.0 | [Release Notes](https://github.com/pyplugin/pyplugin/releases/tag/v0.6.0) | [Patch Notes](https://github.com/pyplugin/pyplugin/releases/tag/v0.6.0) | [Documentation](https://pyplugin.readthedocs.io/en/0.6/) | 19 July 2025 | |
## Changelog v0.6
### Features
- Upgrade to support Python 3.13
## Contributing
Want a new feature, found a bug, or have questions? Feel free to add to our issue board on Github:
[Open Issues](https://github.com/pyplugin/pyplugin/issues)
We welcome any developer who enjoys the package enough to contribute.
If you want to be added as a contributor and check out the
[Developer's Guide](https://github.com/pyplugin/pyplugin/wiki/Developer's-Guide).
## Introduction
Plugins are arbitrary callables. They can declare other plugins as requirements while operating under
certain guarantees:
- A plugin can be loaded (i.e. called) exactly once until it is unloaded.
- A plugin's dependencies will be loaded before.
- A plugin's loaded dependents will be reloaded after.
- When a plugin is unloaded, its loaded dependents will be unloaded before.
This paradigm naturally puts an emphasis on the structure of packages and applications and less on its orchestration.
This allows consumers of applications to easily swap or add plugins while guaranteeing conformity to API
contracts.
## Install
```
pip install pyplugin
```