zope.viewlet
Zope Viewlets
What it is and what it does
zope.viewlet is a framework for building pluggable web user interfaces within the Zope ecosystem. It extends zope.contentprovider by introducing viewlet managers—named template regions—and viewlets, which are discrete content pieces that can be registered and inserted into those regions dynamically. This allows developers to build modular, extensible interfaces where different parts of the UI can be contributed independently without modifying the core template.
The package is part of the Zope foundation's component architecture and integrates with zope.configuration, zope.interface, and zope.security to provide a declarative, adapter-based system for UI composition. It supports Python 3.9 through 3.13 and PyPy, and carries a long history of stable releases dating back to 2007. The framework is most useful in large Zope-based applications where UI modularity and plugin-like extensibility are design requirements.
Use it for:
- Build modular web interfaces in Zope applications where different teams contribute UI regions independently.
- Create pluggable template regions that can be extended without modifying the base template.
- Implement conditional or weighted viewlet rendering for complex multi-tenant or role-based UIs.
- Integrate reusable UI components across a Zope-based CMS or portal system.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
zope.viewlet provides a pluggable framework for building modular web user interfaces by allowing templates to define regions (viewlet managers) where content (viewlets) can be dynamically inserted.
Yes, if you are building within the Zope ecosystem and need pluggable UI composition. The package is stable (Production/Stable status), has no known vulnerabilities, and supports current Python versions. However, the aging maintenance status (336 days since release) and the unclear license treatment warrant verification before adoption in new projects. Most useful for existing Zope applications; less relevant outside that framework.
Install
zope-viewlet on PyPI
pip
pip install zope-viewletuv
uv add zope-viewletpoetry
poetry add zope-viewletInstalling zope.viewlet
Before you install
Low install friction with a pure-wheel distribution. Maintenance status is aging—last release was 336 days ago—but the repository remains active with a recent commit in February 2026 and no archived status.
License in practice
Licensed under ZPL-2.1 (Zope Public License); license treatment is marked unclear in the fact sheet, so the specific obligations for redistribution or modification should be verified before use in proprietary or GPL-compatible contexts.
Quickstart
pip install zope.viewlet
from zope.viewlet.manager import ViewletManager
from zope.viewlet.viewlet import ViewletBase
class MyViewlet(ViewletBase):
pass
Requires Python 3.9 or later; depends on 13 zope.* packages that must be installed.
Verify before relying
- Whether ZPL-2.1 is compatible with your project's license requirements (treatment marked unclear).
- Real-world usage patterns and community adoption beyond the 128k monthly downloads figure.
- Whether the aging maintenance status (336 days since last release) poses a risk for your use case.
Package facts
| License | ZPL-2.1 (unclear) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 13 — setuptools, zope.browserpage, zope.component, zope.configuration, zope.contentprovider, zope.event, zope.i18nmessageid, zope.interface, zope.location, zope.publisher, zope.schema, zope.security, zope.traversing |
| Maintenance | aging — 336 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 128,534/month — #11,703 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: zope_viewlet-6.0-py3-none-any.whl
Keywords: zope, web, html, ui, viewlet, pattern
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
zope.browserpageProvides ZCML directives (browser:page,…
unclear · top 15,000 on PyPI
zope.contentproviderProvides a framework for building componentized…
unclear · top 15,000 on PyPI
zope.globalrequestProvides a function to retrieve the currently…
unclear · top 15,000 on PyPI
zope.ptresourceProvides a resource class that processes Zope…
unclear · top 15,000 on PyPI
zope.browsermenuProvides browser menu implementation and ZCML…
unclear · top 15,000 on PyPI
zope.configurationZope.configuration provides an extensible…
unclear · top 5,000 on PyPI
zope.pagetemplatezope.pagetemplate provides a templating system…
unclear · top 15,000 on PyPI
zope.browserresourceRegisters and serves static browser resources…
unclear · top 15,000 on PyPI
zope.talzope.tal implements the Template Attribute…
unclear · top 15,000 on PyPI
zope.browserProvides a set of standard interfaces for…
unclear · top 15,000 on PyPI