[Python-Dev] Including BSDDB3

Barry A. Warsaw barry@zope.com
Mon, 7 Jan 2002 22:41:50 -0500


>>>>> "MvL" == Martin v Loewis <martin@v.loewis.de> writes:

    MvL> What do people think about including bsddb3 in Python 2.3,
    MvL> along with deprecating the existing bsddb module? You'll find
    MvL> the package at

    MvL> http://pybsddb.sourceforge.net/

+1, for several reasons.

- Robin's done a great job with the module.  It feels quite solid and
  reliable.  I've used it quite a bit working on Berkeley storage for
  ZODB/Zope.

- Berkeley support in 2.2 is broken -- at least the setup.py rules
  are.  On my stock, but stocked Mandrake 8.1 system, bsddbmodule
  never links right and the standard setup.py always deletes it
  because oflink problems.  Fixing this is on My List, although I'd
  prefer to work with pybsddb.

- I've talked to the Sleepycat guys, and if we wanted to, we could
  provide the Berkeley libraries with our distros with no licensing
  problems.  Using Berkeley through the pybsddb binding is perfectly
  legal for any programs using them through Python.

- It'd be great if we actually provided bsddb1, bsddb2, bsddb3 (and
  bsddb4?) modules which compile against the older libraries so
  databases written with any version could be accessed in Python.
  Maybe that's not exactly the right way to do it, but I don't think
  Python should be limited to just one version of Berkeley db.  I've
  no idea what the default ought to be -- there's no clear winner.

    MvL> It would come as a bsddb3 package, which acts
    MvL> interface-compatible with the current bsddb module. Various
    MvL> submodules give access to more advanced features.

I often "import bsddb3 as bsddb".

    MvL> The main rationale for dropping bsddb is that it still relies
    MvL> on the db_185.h interface, which will be phased out sooner or
    MvL> later. Existance of this interface, in turn, results in
    MvL> problems with anydbm:

As mentioned above, I can see reasons for wanting to access any
version of Berkeley db.

-Barry