Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 89ECF108BC for ; Thu, 19 Sep 2013 09:52:28 +0000 (UTC) Received: (qmail 89515 invoked by uid 500); 19 Sep 2013 09:52:27 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 89421 invoked by uid 500); 19 Sep 2013 09:52:17 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 89407 invoked by uid 99); 19 Sep 2013 09:52:14 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Sep 2013 09:52:14 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of bchesneau@gmail.com designates 209.85.216.50 as permitted sender) Received: from [209.85.216.50] (HELO mail-qa0-f50.google.com) (209.85.216.50) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Sep 2013 09:52:10 +0000 Received: by mail-qa0-f50.google.com with SMTP id j7so3475667qaq.9 for ; Thu, 19 Sep 2013 02:51:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=6MJErX/mySl1vtzWK7TFnDNt/Jd/G1+Chd6zYUB8F/E=; b=nQXQ/bCw8v7Mbrc6bdU4INhSVFRlm4YVN2BVLrLW6cxpMiLHNrksjOW2kX3o0ZP3Mc x3AVb2IP86NAsZW7qKj8t3Q9Psgd+ir40lQozZ8+VJqRZkTC5Gfbo1L3Y8mX5oF4DpN3 jGeVrP12360SDnSgmsohTy4TeiWL1qSiLQmlqcgenOI5//1ToxghLp509BF3bJTppkcw LYkjF9z9TK53SgcfIleeTTd4Z1g3OuRe0LyCTOpTxn32pY4cQQtRb0maoMEQbI7c6vwk zYupv+gsudDCDlPa8dRnDHK8qGoFUXKBKCu3XwEmqwrJX8PDkKYcvQiKbjS96iMNdTKB fm0g== MIME-Version: 1.0 X-Received: by 10.49.98.100 with SMTP id eh4mr1560731qeb.42.1379584310067; Thu, 19 Sep 2013 02:51:50 -0700 (PDT) Received: by 10.49.110.196 with HTTP; Thu, 19 Sep 2013 02:51:50 -0700 (PDT) Date: Thu, 19 Sep 2013 11:51:50 +0200 Message-ID: Subject: make all this extra C optionnal From: Benoit Chesneau To: "dev@couchdb.apache.org" Content-Type: multipart/alternative; boundary=047d7bdc9574bd7e7904e6b98062 X-Virus-Checked: Checked by ClamAV on apache.org --047d7bdc9574bd7e7904e6b98062 Content-Type: text/plain; charset=ISO-8859-1 Hi, I am thinking to make all this extra C optional in couchdb. By extra C I mean: - snappy compression - couch compare function using ICU - JS views - JSON encoding Basically anything that is not included in the erlang standard library or not in Erlang. The reason for that is to allow a simple distribution on different platforms or vms things like erlangonxen. Also it would improve a lot the way we can upgrade a full release or change a module live. First one is easy, the second I don't know I guess we can have a more simpler binary comparison is possible or maybe better providing a pure erlang implementation of it using ux [1] wich is probably enough faster for our need (we only require to compare ids or keys). We mostly have JS because it's easy to handle for an end-developer and also trendy among some circles. But i think we could provide here another default. That can be elixir [2] or lua using luerl module [3]. The second one may be the easier since it is also provide for free the sandbox we are supposed to have in JS. Not sure it is easy to do with elixir. Thoughts? - benoit [1] https://github.com/erlang-unicode/ux [2] http://elixir-lang.org/ [3] https://github.com/rvirding/luerl --047d7bdc9574bd7e7904e6b98062--