You could try the database API that is included with ZooLib. It has a C++ api.
It doesn't have a network protocol of any sort, although a network server has
been built with it that uses a proprietary (and I imagine special-purpose) protocol.
It's pretty efficient.
You should get the code that's in CVS, the release code is pretty old and we're
starting to talk about making a new release soon.
http://zoolib.sourceforge.net/
You can browse the database API in:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/zoolib/zoolib/src_other/ZDBase/
Most uses of zoolib are for cross-platform GUI, but you can build a zoolib
application with no GUI, I'm pretty sure you could build a database application
that uses ncurses with it without having to link to the X11 libraries.
It also provides a C++ api for TCP networking. It is multithreaded.
There are actually two database file formats provided in the CVS version. The
newer format is a fault tolerant data store that is based on the Phase Tree
algorithm that was invented by this guy who's also working on a fault tolerant
filesystem for linux that uses it. It's kind of like journaling but different.
You can see the phase tree stuff in:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/zoolib/zoolib/src_other/storage/
the slotstore is the older database format, which works well (and maybe is
faster) but is vulnerable in the event of powerfailures or crashes.
Best,
Mike
--
Michael D. Crawford
GoingWare Inc. - Expert Software Development and Consulting
http://www.goingware.com/
[EMAIL PROTECTED]
Subscribe to the GoingWare Newsletter at http://www.goingware.com/newsletter/
Tilting at Windmills for a Better Tomorrow.
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]