--- id: zope-component version: "7.1" license: ZPL-2.1 license_treatment: unclear maintenance: aging --- # zope.component — Zope Component Architecture License: unclear · Maintenance: aging · Downloads: 1.0M/mo ## What it is and what it does zope.component is the core implementation of the Zope Component Architecture, a design pattern for building loosely-coupled systems through interface-based component registration and lookup. It works with zope.interface to let you define interfaces, register implementations as adapters or utilities, and query them at runtime without direct dependencies between components. The package provides a global component registry and site manager for organizing components hierarchically, supporting both in-memory and persistent storage. It's used primarily in Zope-based web frameworks and applications that need flexible, runtime-configurable component composition, though it's designed to be independently reusable in any Python project. Use it for: - Building plugin architectures where implementations can be registered and swapped without modifying core code. - Implementing adapter patterns to convert between incompatible interfaces at runtime. - Creating utility registries for application-wide singleton-like services accessed by interface. - Organizing large applications with hierarchical local site managers for component isolation. - Enabling ZCML (Zope Configuration Markup Language) declarative component configuration in web frameworks. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Implements the core Zope Component Architecture for defining, registering, and looking up components through interfaces, enabling loose coupling in Python applications. Yes, if you are working within the Zope ecosystem or building a system that requires interface-based component registration and loose coupling. The package is stable, actively maintained, and has no known vulnerabilities. However, the aging maintenance status (192 days since last release) and unclear license treatment warrant verification before adoption in new projects outside the Zope community. ## Install pip install zope-component uv add zope-component poetry add zope-component ## Installing zope.component Before you install: Low install friction with a pure-Python wheel. Maintenance status is aging—last release was 192 days ago—but the package remains actively maintained by the Zope Toolkit project and supports current Python versions through 3.14. License in practice: Licensed under ZPL-2.1 (Zope Public License 2.1), but license treatment is marked unclear in the metadata. Verify the license terms before use in proprietary or restrictively-licensed projects. Quickstart: pip install zope.component from zope.interface import Interface, implementer from zope.component import adapter, provideAdapter, queryAdapter class IFoo(Interface): pass @implementer(IFoo) class Foo: pass provideAdapter(Foo, IFoo) foo = queryAdapter(Foo(), IFoo) Requires Python 3.10 or later; earlier Python versions are not supported. Verify before relying: - Whether the unclear license treatment affects commercial or proprietary use cases. - Performance characteristics when managing large numbers of registered components. - Compatibility with frameworks beyond Zope 3 and Zope 5 (listed in classifiers). ## Package facts - License: ZPL-2.1 (unclear) - Python support: supports_current - Install friction: low - Maintenance: aging - Downloads: 1.0M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags component registry interface lookup, zope component architecture, loose coupling dependency injection, interface-based component registration, adapter and utility registration, component architecture framework, interface registry system, component-architecture, interface-registry, zope-ecosystem [View on SkillFed](https://skillfed.io/packages/zope-component) · [View on PyPI](https://pypi.org/project/zope-component/)