couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Anderson" <>
Subject _external as a plugin?
Date Tue, 04 Nov 2008 19:32:44 GMT
I'm interested in seeing _external in a release because so many people
have expressed interest in it. It'd be great to make the install
process simple. I also think making CouchDB extensible will provide
real power for people to develop against. This will make CouchDB
stronger, and allow us to concentrate on the core it's mission, while
still allowing innovation at the edges.

Paul Davis is using _external to power full text indexing. I have a
write up of action servers for standalone Couch apps (using _external)
here if you didn't yet come across it:

Here's what I think I'd like to see: _external is packaged as a plugin
(whatever that means) but included in the default distribution.

I'm thinking that each plugin would have a `make install` that puts it
in /usr/local/lib/couchdb/erlang/lib/ somewhere. CouchDB's `make`
could also be set to look inside say ./contrib or ./plugins for any
plugins to build (where a plugin is a directory with its own Makefile
that knows how to read CouchDB's config to find it's install
location). But I'm a `make` novice so I'd really like your feedback
about how best to structure this.

I think it might be good to establish a pattern for CouchDB plugins,
to enable users to experiment with Erlang modules as well. For
instance we've heard some interest in user-definable collation
systems. To be practical, these should be written in Erlang when
possible, so they might make a good candidate for a plugin. I'm sure
there's a lot of stuff outside of CouchDB's core that would be better
served by a plugin infrastructure than by patches and tickets against

Thoughts, suggestions? Maybe this should be integrated into the build after 0.9?


Chris Anderson

View raw message