[ZODB-Dev] SpatialIndex

Laurence Rowe l at lrowe.co.uk
Mon Jun 28 17:42:19 EDT 2010


On 28 June 2010 21:27, Nitro <nitro at dr-code.org> wrote:
> ZODB is a general python object database with a much wider audience than
> just plone. It suits desktop applications just as well as applications
> you'd normally use twisted and pickle for. Forcing all those zope
> dependencies like buildout on people does not add to the attractiveness of
> ZODB for users outside zope. Having indices only in plone does also not
> make sense. Many applications would benefit from keyword, field,
> full-text, spatial, younameit indices. Yet extracting individual packages
>  from zope/plone is impossible due to the slew of dependencies. While I can
> accept a dependency like zope.interface I don't accept a lot of the
> others.  It really prevents ZODB from living up to its full potential in
> non-plone applications.

Remember that Plone is an eight year old application that is built on
top of a 12 year old Application server. There has been much progress
since then (and plenty of people who build non-Plone ZODB based
applications), but the size of the codebase means it is not possible
to always be using the current best practice.
http://zope2.zope.org/about-zope-2/the-history-of-zope

Nobody would recommend that you try to extract stuff from Plone or
Zope2. In my opinion there are two main sources of packages for
non-Zope2 dependent applications.

* The ZTK extracted the core of Zope 3 and is used in application
servers such as Grok and BlueBream. It contains zope.catalog and it's
related packages. There are several extensions on top of this such as
zc.catalog and hurry.query. The 1.0 release has not been there yet,
but the underlying packages are stable. Installing zcatalog requires a
total of 34 packages (ZODB3 requires 10)
http://docs.zope.org/zopetoolkit/releases/packages-trunk.html

* The Repoze project has focussed on making zope technologies more
easily accessible to applications outside of Zope. Whilst the ZTK
project has improved things a lot, it is still a relatively large
chunk to swallow whole. repoze.catalog is extracted from zope.catalog
and requires only zope.index in addition to ZODB3.
http://docs.repoze.org/catalog/

At the very lowest level are the indexes themselves such as zope.index
and zc.relation, a spatial index would fit in here too.

(Health warning: I'm mostly a Plone developer, so do not yet have
experience using these packages)

Laurence


More information about the ZODB-Dev mailing list