For our little spam filter app, we’ve been evaluating embedded storage options. For commercial apps, the options are surprisingly few. HSQL and McKoi are nice but neither sports a commercial-friendly license. Axion shows a lot more promise (but it’s dependent on an older version of commons-collection).

Of the commercial options, you’ve got Daffodil and ObjectDb which both look very good, but have prohibitivly high per seat licensing options - which is no good for a desktop app. Ditto for JDataStore. And Pointbase seems to have their download links broken. I’ve filled out their forms numerous times, but it still won’t let me download an Eval copy. So they’re out too. If that’s their download approach, their support is probably going to be big trouble.

One left-field option is InfinityDb which is a non-relational BTree-based API that Matt recommended. Unusual API, but it’s got a decent royalty-free price. It stores it’s data compressed. It’s incorruptable. The schema is dynamically updatable (so no version probs). And the support is just wonderful. I just received a two-page reply from their support giving numerous options for my implementation problem.

So, anyone out there using an Embedded DB in their commercial app? What have you had good experience with?