Differences between revisions 2 and 15 (spanning 13 versions)
Revision 2 as of 2005-09-14 12:38:04
Size: 89
Editor: gate117
Comment: 1st ed
Revision 15 as of 2009-11-05 20:35:33
Size: 3670
Editor: emedia
Comment: Remove ZODB PgStorage, add RelStorage
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Pickle
ZODB
Durus
= Other Persistent Storage Modules =
Line 5: Line 3:
Should put the contents of /topics/database/persistence.ht here. 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.

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

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.

DBM,
GDBM,
dbhash Included with the standard Python distribution. Each of these modules is an interface to a specific library.

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.

Metakit MetaKit is a C++ library for storage, transport, and manipulation of structured objects and collections. A Python interface is available.

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.

Python-DSV parses comma-separated value (CSV) files or similar delimiter-separated files (see also 0305).

The xBase .dbf file format used by several old systems such as dBase(II,III,IV), Fox(Base,Pro)

Persistent Objects

pickle.py Included with the standard Python distribution. The pickle module can convert Python objects to and from a string representation.

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.

PyPerSyst A portable object database management system (ODBMS) as well as a database application framework. PyPerSyst works well with Pyro and Twisted.

PyVersant A wrapper for the 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.

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.

PersistenceTools (last edited 2009-11-05 20:35:33 by emedia)

Unable to edit the page? See the FrontPage for instructions.