I am looking for an embedded, transactional B-Tree database alternative to BerkeleyDB. You ask me what's wrong with Berkeley DB. Well, there are no technical issues but the license is not free for commercial use. Unfortunately I couldn't find one :-(. db-1.85 doesn't fit the bill because it doesn't support transactions. Same problem with gdbm. db.* looked promising but that requires a schema definition.
I already knew about SQLite and remembered reading that it's B-Tree API could possibly be used independently. This was in the back of my mind for a long time, so I set to find out if that's the case. I found that the SQLite's B-Tree API provides a surprisingly clean and complete B-Tree interface with transaction support. There is a TCL based test suite (test3.c) that serves as a good example of how the API can be used.
I am writing a test program to excercise the API. I'll blog my progress.