philwilson.org

CouchDB in desktop applications

04 April, 2009

Following my last post I was considering writing a Venus filter which adds all feed items into a CouchDB database. This could then be queried by a modified wxVenus or a webapp (using the CouchDB jQuery library) or whatever.

Thinking specifically about wxVenus, which is a desktop appliaction, CouchDB is like MySQL in that you must have the server up and running before your application tries to use it, and (afaik) there is no way to embed the server itself into your application, which places quite a bit of burden on the user.

My initial plans were to use SQLite which I can embed and use happily without another daemon running beforehand, but would mean I have to set up a schema and do all that tedious INSERTing, SELECTing and so on (I appreciate I could go all ORM on its ass, but again the development effort is much much higher than that with CouchDB).

So, what to do? I suspect that for the moment I’ll go about getting CouchDB all nice and integrated, but it doesn’t look like it’d leave me with an application people can download, install the dependencies, and just run, does it?

See other posts tagged with couchdb general python venus wxvenus and all posts made in April 2009.

Comments

Chris May
05 April, 2009 at 14:14

If you’re content to use a key-value database like couchDB (i.e. you don’t want/need an RDBMS), how about using one of the DBM-derivatives? QDBM, or Tokyo Cabinet, say?

They’re fast and lightweight, and they don’t require a separate server process. QDBM is pretty mature and has APIs for most languages and packages for every unix and even Windows.
Tokyo Cabinet is super-cool at the moment but doesn’t have a win32 build as far as I know.

Phil
05 April, 2009 at 21:11

My excellent reason for not choosing either of those is that I’ve never heard of them 🙂

In fact, as I progress with some work around the edges I’m beginning to wonder whether I need anything other than the disk-based XML files I already have (although I need to refactor how I store them).

A little bit of digging suggests that neither QDBM or Tokyo would suit my purposes at the moment – I must be cross-platform (at least Windows and Linux) and I must have Python bindings. No win32 for Tokyo, and no Python for QDBM!

Matt Hamilton
07 April, 2009 at 10:28

Or as you are already in python, why not just use the ZODB?

-Matt

Phil
07 April, 2009 at 21:37

In all honesty, just having “Zope” in the title puts me off. 😉

I know I can use StandaloneZODB but it’s just so much more boring!