[ANN] buzhug 0.9 released

Pierre Quentel quentel.pierre at wanadoo.fr
Sat Sep 29 18:03:21 CEST 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.9 is a minor update, fixing a bug (forbid adding a field
with the same name as an existing field) and adding a method to close
the database

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