
Hello,
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
Regards, Pierre
participants (1)
-
Pierre Quentel