Repoze: Integrating Zope Into a WSGI World

Overview

Repoze is a collection of technologies which bridges WSGI and Zope .

Goals

  • Make it possible for non-Zope Python developers to selectively use Zope features in a WSGI environment.
  • Help Zope developers integrate their applications into a WSGI environment.

Problems

Some of the things that Zope does are useful enough to be applicable to non-Zope-based WSGI applications: transaction management, virtual hosting, form marshalling, declarative access control, etc. But currently it's not easy for Python web developers who aren't fluent in Zope to make use of these features, because they aren't always decomposed into individually reusable pieces.

At the same time, WSGI deployment of Python applications is becoming a defacto standard in the wider Python world, and it's still reasonably difficult to serve up Zope (particularly Zope 2) via a WSGI server.

Solutions

Repoze consists of reimplementations of core Zope features as WSGI middleware (repoze.vhm, repoze.retry, repoze.tm), and WSGI applications (repoze.zope2, repoze.grok). Repoze also reuses existing WSGI middleware (Paste) and servers where possible.

The bits of Repoze that are reimplementations of core Zope features can be ignored or used as necessary in non-Zope contexts.

Software Requirements and Limitations

The packages in the repoze. namespace require setuptools for installation.

None of the repoze.* software has been tested under any version of Windows. It has only been tested under UNIX variants (Linux and Mac OS X at the time of this writing).

Technology Dependencies

Repoze is heavily dependent on Ian Bicking's Paste , Phillip Eby's setuptools and of course the WSGI specification also written by Phillip Eby. Repoze reimplements and reuses some technologies originated within Zope .

Licensing

The original bits that make up Repoze are released under a BSD-style license . Some non-original parts of Repoze are licensed under the ZPL (another BSD-style license).

Resources

Mailing lists

Blog

Repoze bug tracker

Subversion repository (via ViewCVS)

Subversion repository (via http)

Repoze Python package repositories

IRC channel

Contributing

Patches may be sent to the repoze-dev maillist or put into the bug tracking system . Patches sent to the list may be lost, so putting them in the bug tracking system is better.

To obtain write access to the Repoze version control system, you will be required to sign a contributor's agreement .