Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 78616 invoked from network); 28 Oct 2009 20:21:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 28 Oct 2009 20:21:41 -0000 Received: (qmail 30827 invoked by uid 500); 28 Oct 2009 20:21:39 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 30777 invoked by uid 500); 28 Oct 2009 20:21:39 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 30767 invoked by uid 99); 28 Oct 2009 20:21:39 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Oct 2009 20:21:39 +0000 X-ASF-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of paul.joseph.davis@gmail.com designates 209.85.211.186 as permitted sender) Received: from [209.85.211.186] (HELO mail-yw0-f186.google.com) (209.85.211.186) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Oct 2009 20:21:37 +0000 Received: by ywh16 with SMTP id 16so1112834ywh.13 for ; Wed, 28 Oct 2009 13:21:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :from:date:message-id:subject:to:content-type; bh=yhQ0JlQeWaALA//6/Ph+CA3ujZW7vuC8xusAplm0rCM=; b=q2Zq/WH0RJSt2gM5phPWE6JotiQRG3eqwPo3cccUsbjwhOcQRoEHKtrqkyDLqDeN4I phJDY7wYNZ+5Y6IAE6CjUDu5eqqi993fT0Nt/RftEUi4Xs7C1bohq/2kYvd65UfhIofw bRflCVpSqoP0c15AbCId9YTla4PnMrdwWoGro= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; b=SMbDDS4h3w56fTZXSMDPOkeTeBYPwClaFzGsWflvWy6C0SA03m8GKBLTEWZLkxKIoj pxC67qwZMKjT4yRk2WF4/nja1uJVYtpM0QrYhlhnB7nxpVKGgjLQWu9YxMkR+fTX1Gbm 4CLSyyY+Pp6crDO3nLtk1i9C3qGocNfWaVx3U= MIME-Version: 1.0 Received: by 10.100.236.21 with SMTP id j21mr701949anh.146.1256761276249; Wed, 28 Oct 2009 13:21:16 -0700 (PDT) In-Reply-To: <4AE8A447.1070205@tmit.bme.hu> References: <4AE8A447.1070205@tmit.bme.hu> From: Paul Davis Date: Wed, 28 Oct 2009 16:20:55 -0400 Message-ID: Subject: Re: Erlang-only CouchDB To: user@couchdb.apache.org Content-Type: text/plain; charset=ISO-8859-1 Zoltan, (Got the A right!) On Wed, Oct 28, 2009 at 4:06 PM, Zoltan Lajos Kis wrote: > Hello all, > > Has anyone been experimenting with running CouchDB as an Erlang only > application? What I would love to have is: > - stick CouchDB into my lib/ directory, and have it run as part of my > release (everything running in a single Erlang VM). We've done some work to make CouchDB startable via application:start() as per Erlang semantics. This should work in theory but there still might be gotchyas with the base install. I know people have successfully run it as a dependent app though. > - use Erlang views only (is erlview running within the same VM? is it > up-to-date with CouchDB features?) Native Erlang views can be enabled with a config option. They're in trunk now and will remain consistent with the JavaScript server implementation. > - access CouchDB via an Erlang interface (is hovercraft still running? does > it support all features available via http?) Not sure if Hovercraft is up to date with trunk. I think I heard someone on IRC say there was a minor version difference that was minor to resolve. > - no dependency on ICU, curl and SpiderMonkey (as I would not need them for > anything) To remove the ICU dependency you'll have to patch CouchDB because its a linked in driver that's required for collation regardless of view server. Curl and Spidermonkey could be removed as install time dependencies fairly easily by discarding couchjs after a build and updating the configuration to not attempt to use it. I think some parts of the auth code depend on having the JS view server available but you could ixnay that pretty easily by giving it an Erlang implementation. Its a pretty simple view IIRC. For build time dependencies, I don't foresee removing them. Though I could be convinced if the patch to the build system isn't overly intrusive. > Any pointers to references, case studies, whatever is much appreciated! > > Regards, > ZoltAn. I've heard of people running as a subordinate in a VM but have no direct experience myself. As I recall they basically built CouchDB and then installed into their Erlang package for distribution. Or some such. It may take a bit of effort as its not use case that's had lots of patches submitted. HTH, Paul Davis