My good friend Mark Petrovic and I are releasing KiraDB on gitub as an open-source project. KiraDB is a Java API implementing a persistent datastore for stand-alone applications. The design goal of KiraDB is to be lightweight and easy to use, while still providing a reasonably powerful set of core features. The basic features include put/get storage and retrieval based on a primary key, with indexed fields, querying, sorting, and even “more like this” fuzzy searching and full-text searching with stemming. KiraDB has many possible configurations and provides integrated ehCache caching (optional) and hooks to an optional “backing store” including a supplied File-based store implementation and Amazon S3-based object store. Users can also supply their own “backing store” and caching implementations (IOW, using KiraDb to enable searching/sorting for your favorite PUT/GET object store).
As an exercise to get a feel for deploying KiraDb in real applications, I ported Jeff Douglas’ Telesales web application from Google App Engine to KiraDb. It turned out to be pretty easy. You can try the app here: http://webapps.toyz.org/telesales/ or download the source and all dependencies here: telesales.zip
Check out KiraDB on gitub.