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: http://jchris.mfdz.com/code/2008/10/standalone_applications_with_co 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 trunk. Thoughts, suggestions? Maybe this should be integrated into the build after 0.9? Thanks, Chris -- Chris Anderson http://jchris.mfdz.com
