ZODB - a native object database for Python

Because ZODB is an object database:

  • no separate language for database operations

  • very little impact on your code to make objects persistent

  • no database mapper that partially hides the database.

    Using an object-relational mapping is not like using an object database.

  • almost no seam between code and database.

  • Relationships between objects are handled very naturally, supporting complex object graphs without joins.

Check out the Tutorial!

ZODB runs on Python 2.7 or Python 3.4 and above. It also runs on PyPy.

Learning more

What is the expansion of “ZODB”?

The expansion of “ZODB” is the Z Object Database. But, of course, we usually just use “ZODB”.

In the past, it was the Zope Object Database, because it was developed as part of the Zope project. But ZODB doesn’t depend on Zope in any way and is used in many projects that have nothing to do with Zope.


ZODB is distributed through the Python Package Index.

You can install the ZODB using pip command:

$ pip install ZODB

Community and contributing

Discussion occurs on the ZODB mailing list. (And for the transaction system on the transaction list)

Bug reporting and feature requests are submitted through github issue trackers for various ZODB components:

If you’d like to contribute then we’ll gladly accept work on documentation, helping out other developers and users at the mailing list, submitting bugs, creating proposals and writing code.

ZODB is a project managed by the Zope Foundation so you can get write access for contributing directly - check out the foundation’s Zope Developer Information.