= Other Persistent Storage Modules =

The modules listed on this page provide mechanisms for
storing data on disk.  Some modules are simply the disk-based equivalent of
dictionaries; others provide for persistent storage of arbitrary
Python objects.

== Disk-based Dictionaries ==

[[http://docs.python.org/lib/module-anydbm.html|anydbm]]
Included with the standard Python distribution.  
The {{{anydbm}}} module is a generic interface to all the
DBM-like modules listed in the next two lines, selecting from 
whichever modules are installed.

[[http://docs.python.org/lib/module-dbm.html|DBM]],<<BR>>
[[http://docs.python.org/lib/module-gdbm.html|GDBM]],<<BR>>
[[http://docs.python.org/lib/module-dbhash.html|dbhash]]
Included with the standard Python distribution.  Each 
of these modules is an interface to a specific library.

[[http://docs.python.org/lib/module-bsddb.html|BSDDB]]
Included with the standard Python distribution.  In
addition to dictionary-like behaviour, this module also supports
B-trees, which allows traversing the keys in sorted order.

[[http://www.equi4.com/metakit/|Metakit]]
MetaKit is a C++ library  for storage, transport, and manipulation of
structured objects and collections.  A Python
interface is available.

[[http://www.lemburg.com/files/python/mxBeeBase.html|mxBeeBase]]
mxBeeBase is a high performance construction kit for disk based
indexed databases. It offers components which you can plug
together to easily build your own custom mid-sized databases, up
to around 2Gb on 32-bit platforms).

== Data Writing and Parsing ==

PyTables reads and writes large amounts of numeric data. 

[[http://python-dsv.sourceforge.net/|Python-DSV]] parses comma-separated value (CSV) files or similar delimiter-separated files (see also PEP:0305).

The xBase .dbf file format used by  several old systems such as  dBase(II,III,IV), Fox(Base,Pro)
 * xBase (http://linux.techass.com/projects/xdb/) - Python interface in plans
 * http://www.fiby.at/dbfpy/index.html
 * http://cbbrowne.com/info/xbase.html
 * http://www.clicketyclick.dk/databases/xbase/format/

== Persistent Objects ==

[[http://docs.python.org/lib/module-pickle.html|pickle.py]]
Included with the standard Python distribution.  The 
{{{pickle}}} module can convert Python objects to and from
a string representation.  
  
[[http://docs.python.org/lib/module-shelve.html|shelve.py]]
Included with the standard Python distribution.
Built on top of the {{{pickle}}} and {{{anydbm}}}
modules, the {{{shelve}}} module behaves like a persistent
dictionary whose values can be arbitrary Python objects.
  
[[http://sourceforge.net/projects/pypersyst/|PyPerSyst]]
A portable object database management system (ODBMS)
as well as a database application framework.  PyPerSyst works well
with Pyro and Twisted.
  
[[http://starship.python.net/crew/jmenzel/|PyVersant]]
A wrapper for the [[http://www.versant.com|Versant commercial OODBMS]].
  

[[http://wiki.zope.org/ZODB]]
The Zope Object Database is a persistent-object
system that provides transparent transactional object
persistence to Python applications. 
 * DirectoryStorage: http://dirstorage.sourceforge.net/
 * RelStorage: http://pypi.python.org/pypi/RelStorage

[[http://www.mems-exchange.org/software/durus/|Durus]]

Durus is a persistent object system that offers an easy way to use and maintain a consistent collection of object instances used by one or more processes. Changes to persistent instances are managed through a cached Connection instance that includes {{{commit()}}} and {{{abort() }}} methods so that changes are transactional.