skillfed

plux

A dynamic code loading framework for building pluggable Python distributions

plux v1.16.0 893.4K downloads/30d#4,797 on PyPI76
Permissive license Apache-2.0 Active released

What it is and what it does

Plux wraps Python's entry point mechanism to provide a higher-level plugin architecture. It discovers plugins at build time by scanning your codebase for Plugin classes and PluginSpec instances, automatically generating entry points without manual setup.py declarations. At runtime, a PluginManager loads plugins on demand, tracking their lifecycle through three states: resolved (entry point imported), init (factory invoked), and loaded (plugin's load method called). If a plugin fails at any stage, the manager logs the failure but continues operating.

The framework supports two discovery modes: build-hooks (default, integrated with setuptools) and manual mode (for isolated build environments). Plugins can be defined as classes, factories, or decorated functions. This design is particularly useful for large applications like LocalStack that need modular, dynamically-loaded components without hardcoding plugin lists.

Use it for:

  • Building CLI applications where subcommands are provided by separate plugin packages discovered at startup.
  • Creating microservice architectures where service implementations are loaded dynamically based on configuration.
  • Developing extensible frameworks where third-party developers can contribute plugins without modifying core code.
  • Packaging applications with optional feature modules that load only when their dependencies are available.
  • Automating entry point generation in complex projects to avoid manual synchronization between code and setup metadata.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Plux is a dynamic plugin loading framework built on Python's entry point mechanism, enabling runtime discovery and lifecycle management of plugins with build-time entry point generation.

Yes. Plux is production-stable, actively maintained, has zero known vulnerabilities, and solves a real problem for applications needing modular plugin architectures. The low install friction, permissive license, and support for modern Python versions (3.10–3.13) make it a safe choice. Install it if you're building an extensible application or framework where plugins should be discovered and loaded dynamically.

Install

plux on PyPI

pip

pip install plux

uv

uv add plux

poetry

poetry add plux

Installing plux

Before you install

Low install friction with a pure-Python wheel and no runtime dependencies. Active maintenance with recent releases; last commit 2026-07-06 and production-stable classifier indicate ongoing support.

License in practice

Apache-2.0 permissive license allows commercial and proprietary use with minimal restrictions, making it suitable for closed-source projects.

Quickstart

pip install plux

from plux import Plugin, PluginManager

class MyPlugin(Plugin):
    namespace = "my.plugins"
    name = "example"
    def load(self): pass

manager = PluginManager("my.plugins")
plugins = manager.load_all()

Requires Python 3.10 or later.

Verify before relying

  • Whether the build-hooks mode works seamlessly with modern build backends beyond setuptools (e.g., poetry, flit).
  • Performance characteristics when managing large numbers of plugins or deeply nested namespaces.
  • Compatibility with Python 3.13 in practice (classifier present but no explicit test evidence in fact sheet).

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance actively maintained — 136 days since the last release
Last repo commit
First released
Downloads 893,389/month — #4,797 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: plux-1.16.0-py3-none-any.whl

Development Status :: 5 - Production/StableOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: Software Development :: LibrariesTopic :: Utilities

Tags

python plugin frameworkdynamic code loadingentry point discoveryplugin manager runtimepluggable python applicationsbuild-time plugin detectionplugin lifecycle management
plugin-architectureentry-pointsdynamic-loading

More Libraries packages