--- id: plux version: "1.16.0" license: Apache-2.0 license_treatment: permissive maintenance: active --- # plux — A dynamic code loading framework for building pluggable Python distributions License: permissive · Maintenance: active · Downloads: 893.4K/mo ## 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 above — 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 pip install plux uv add plux 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_current - Install friction: low - Maintenance: active - Downloads: 893.4K/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags python plugin framework, dynamic code loading, entry point discovery, plugin manager runtime, pluggable python applications, build-time plugin detection, plugin lifecycle management, plugin-architecture, entry-points, dynamic-loading [View on SkillFed](https://skillfed.io/packages/plux) · [View on PyPI](https://pypi.org/project/plux/)