Berkeley DB / Berkeley DB XML binding for Haskell
Version 0.2 23 Sep 2008
by Stephen Blackheath
email me: http://blacksapphire.com/antispam/
darcs repository: http://blacksapphire.com/BerkeleyDBXML/
Berkeley DB XML is a powerful, fully transactional, XML-based database that uses
XQuery as its query language. You can download it here:
http://www.oracle.com/database/berkeley-db/xml/index.html
This package provides a Haskell binding for Berkeley DB XML. It is a tolerable
subset of the API, and I hope to improve it over time. I have stuck closely to
the C++ API, with some minor changes where a Haskell idiom seemed appropriate.
I hope that people will develop higher level wrappers for it. I have had great
success with the "pickler" interfaces in the HXT library. In a future version
of this package I will give some examples.
This package is in its very early stages, and needs some work, but it should
allow you to write a fairly serious application. If you find some part of the
API that is missing, and would like it added, please contact me.
I hope this package helps make Haskell better. I am partly motivated by a
belief that SQL is holding us back. An advanced language should have an
advanced database.
If you just want Berkeley DB without Berkeley DB XML, you should be able to
achieve this easily by modifying the BerkeleyDBXML.cabal file. The Berkeley DB
parts do not depend on the Berkeley DB XML parts. Some time I will make this
easier.
To install, use the standard Cabal install procedure:
runhaskell Setup.hs configure
runhaskell Setup.hs build
sudo runhaskell Setup.hs install
If Berkeley DB or DB XML is not installed in the default location of /usr or
/usr/local, you will need to specify the paths in this way:
runhaskell Setup.hs configure \
--extra-include-dirs=/usr/local/dbxml-2.4.13/include/dbxml/ \
--extra-lib-dirs=/usr/local/dbxml-2.4.13/lib/
Cabal does not seem to check these very well. If you get the lib directory
wrong, you won't find out until you try to build the examples.
See the examples/ directory.