[ANN] buzhug-0.7 (pure-Python database engine)

Pierre Quentel quentel.pierre at wanadoo.fr
Sun Feb 25 09:38:19 CET 2007


A new version of buzhug has just been published : http://buzhug.sourceforge.net

buzhug is a fast, pure-Python database engine, using a syntax that
Python programmers should find very intuitive

The data is stored and accessed on disk (it is not an in-memory
database) ; the implementation has been designed to make all
operations, and especially selection, as fast as possible with an
interpreted language

The database is implemented as a Python iterator, yielding objects
whose attributes are the fields defined when the base is created ;
therefore, requests can be expressed as list comprehensions or
generator expressions, instead of SQL queries :

for record in [ r for r in db if r.name == 'pierre' ]:
	print record.name,record.age

instead of

cursor.execute("SELECT * IN db WHERE name = 'pierre'")
for r in cursor.fetchall():
	print r[0],r[1]

buzhug supports concurrency control by versioning, cleanup of unused
data when many records have been deleted, easy links between bases,
adding and removing fields on an existing base, etc

Database speed comparisons are not easy to make. I made a limited
benchmark using the same use cases as SQLite's author ; it shows that
buzhug is much faster than other pure-Python modules (KirbyBase,
gadfly) ; SQLite, which is implemented in C, is faster, but only less
than 3 times on the average

Version 0.7 is a minor update, with Python2.3 compatibility and a new
method for updating records

Download : http://sourceforge.net/project/showfiles.php?group_id=167078
Documentation : http://buzhug.sourceforge.net/
Tutorial : http://buzhug.sourceforge.net/tutorial.html
Users group : http://groups.google.com/group/buzhug?lnk=li


More information about the Python-announce-list mailing list