Downloads

Maintainers' corner

Readme for BerkeleyDBXML-0.1

Berkeley DB / Berkeley DB/XML binding for Haskell
Version 0.1 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.