Differences between revisions 1 and 10 (spanning 9 versions)
Revision 1 as of 2004-10-11 20:08:24
Size: 68
Comment:
Revision 10 as of 2007-06-16 01:52:53
Size: 3663
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Should put the contents of /topics/database/persistence.ht here. = Other Persistent Storage Modules =
Line 3: Line 3:
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/Wikis/ZODB/FrontPage ZODB]
The Zope Object Database is a persistent-object
system that provides transparent transactional object
persistence to Python applications.
 * DirectoryStorage: http://dirstorage.sourceforge.net/
 * PGStorage: http://hathawaymix.org/Software/PGStorage

[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

[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 0305).

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

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/Wikis/ZODB/FrontPage ZODB] The Zope Object Database is a persistent-object system that provides transparent transactional object persistence to Python applications.

[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.

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

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