不知道如何在Android上使用CouchDB?

46

我想将CouchDB作为我的移动应用程序的后端,替换SQlite。

作为这项技术的新手,我感到非常困惑,因为除了 Couchbase 去年发布的所有类似产品(如Couchbase、Couchbase Single Server、Membase、Couchbase Mobile)外,它们现在似乎正在将所有这些产品合并成一个单一项目,即Couchbase Server。但是,实际上它指的是Membase而不是CouchDB。更何况,CouchDB 的创建者将不再继续开发CouchDB。尽管如此,CouchDB 社区看起来非常活跃。以下是我所知道的:

  1. 我了解到 Couchbase 公司不再提供 CouchDB 的发行版。

  2. 我了解到 Couchbase Server,Couchbase 公司的新焦点,实际上根本不是 CouchDB,也与 CouchDB 不兼容。它没有实现 CouchDB 使用的 HTTP API,而是使用了从 Membase 演变而来的二进制协议。

  3. 关于 CouchDB Mobile 的所有最新信息似乎都指向了Couchbase Mobile。

我的问题可以概括为:

是否仍然可以在Android设备上使用CouchDB? 特别是CouchDB,而不是Couchbase Server,因为它们的API不兼容?

如果仍然可以,我该如何操作?源代码在哪里?有任何示例应用程序吗?

很抱歉我的问题可能会让人感到困惑。老实说,我很难在众多看似相互矛盾的帖子中找到正确的答案。我只想在Android上运行CouchDB!:)


有点跑题,但是为什么你想使用CouchDB而不是SQLite呢? - user
3
我会尽力为您翻译:@slukian,我想利用CouchDB的复制功能。与移动应用程序相对应的服务器应用程序使用的是CouchDB。 - Jonathan
4个回答

32
作为Couchbase的联合创始人,我应该能够给您一个更清晰的理解。我会逐个回答你的问题。
1)正确。Couchbase Server不是CouchDB。它 sacrifies 了CouchDB的一些有趣的功能 (HTTP接口、主/主复制),以便可以实现其他有趣的功能(子毫秒延迟、巨大的集群)。从长远来看,我们希望恢复我们不得不放弃的高性能版本的功能。目前,我们正在构建最快、最可靠的NoSQL数据库(耶),但它没有解决与CouchDB相同的用例。
2)也许我刚才回答了这个问题?关于Couchbase Server的更多信息在这里:http://www.couchbase.com/couchbase-server/overview 3)Couchbase继续投资移动技术。我们已经有针对Android和iOS的经过充分测试的实现。这些基于Apache CouchDB,因此它们将具有您要寻找的功能集。访问这里下载它们:http://www.couchbase.com/wiki/display/couchbase/Couchbase+Mobile+Syncpoint (在该页面上查看iOS和Android的链接)
展望未来,我们正在专注于在设备上运行CouchDB-based代码的轻量级替代方案。要使CouchDB在设备上运行,需要Erlang虚拟机。虽然它很轻巧并且尊重电池寿命(对于VM),但它仍然是一个VM。因此,我们正在为移动设备构建更轻量级的同步和存储引擎。TouchDB for iOS 可以与Apache CouchDB同步。我们还有类似的Android项目。如果我要开始一个新项目,我会看看这些。

在你提出的两个选项中,你认为哪一个是更好的选择?Syncpoint的未来版本是否与CouchDB兼容,还是我需要在几个月内找到新的解决方案?最后,连续复制/同步处理得如何?感谢您的帮助,非常感激!我旁边放着你合著的书。 :) - Jonathan
还有一件事... GeoCouch如何融入这个场景? - Jonathan
Syncpoint的同步层将基于Apache CouchDB,因此它应该可以很好地与它同步。 话虽如此,我们可能会进行优化,这可能会破坏兼容性。 我们所做的一切都是开源的,并可合并回Apache项目,因此我们保持兼容性的机会很大。 - J Chris A
GeoCouch本身是Couchbase Server和Apache CouchDB的插件,因此它应该继续与这个系统一起工作。至于手机上的GeoCouch,我们需要重新实现或者集成现有的移动地理系统。这个功能非常吸引人,只是我们需要确定优先级。 - J Chris A
1
现在您已经弃用了TouchDB,您能否评论一下Couchbase Lite? - Indolering

14

TouchDB的安卓端,https://github.com/couchbaselabs/TouchDB-Android,可能会很有意思:

“TouchDB是一种轻量级的CouchDB兼容数据库引擎,适用于嵌入移动或桌面应用程序。”

它不是CouchDB的插曲替换品,但承诺提供基本相同的API,也许最重要的是,它“支持与CouchDB之间的复制。”


1
谢谢,我会研究一下。我仍然希望能找到那些互联网文章提到的神秘的适用于Android的CouchDB。 - Jonathan

6

TouchDB已被Couchbase Lite Android取代,Couchbase-Lite-Android只能用于Honeycomb及以上版本。截至2013年9月16日,该库仍处于Alpha测试阶段,不会很快投入生产使用。

目前唯一的解决方案似乎是parse.com,当然这是一个付费解决方案。


Github页面(https://github.com/couchbase/Android-Couchbase)目前显示需要Android 2.1或更高版本。 - Basel Shishani

4
这里的答案有点过时了。
Couchbase Lite是一款成熟、可供使用的产品(开源),它实现了一个独立的、功能齐全的NoSQL数据库,适用于移动、物联网和其他需要轻量级解决方案或网络连通性不佳的应用。它具有广泛的平台支持。
Couchbase Lite可以进行同步,与CouchDB兼容。
您可以在Couchbase网站上找到更多信息。对于移动设备,请访问http://developer.couchbase.com/mobile 编辑:Couchbase Mobile 2.0已发布。这是一个重大的改写。Couchbase Lite 2.0复制使用了一种新协议,与CouchDB兼容。

1
我认为这个答案也有点过时了。Couchbase Lite 2.x不再与CouchDb兼容,这是正确的吗? - Matthew Groves

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接