couchdb - CouchDB 真的可以用于桌面应用程序吗?

标签 couchdb desktop-application

我希望有人可以在这里验证或更正我的结论。

我正在考虑写一个小的副项目。我想创建一个用于记笔记的桌面应用程序,该应用程序将同步到 Web 服务器,以便多个安装可以保持同步并共享数据,并且如果需要,还可以通过浏览器访问它。

我一直在听关于 CouchDB 的噪音,我听说过“离线功能”、桌面 couchdb 以及利用其处理间歇性通信的能力来启用移动市场中的分布式应用程序的举措。这一切都让我相信,它可能是一个有趣的选择,可以提供我的数据存储并处理我的同步需求,但是在花了一些时间四处寻找有关如何开始的信息之后,我的结论是我有完全错误的一端,现实是:

无法打包 CouchDB 实例,将其作为桌面应用程序的一部分分发并在该应用程序的上下文中运行,以提供本地存储和与中央数据库的同步。

我在这里正确吗?如果是这样,是否有任何技术可以做这种事情,或者我只是滚动我自己的本地存储并且可能仍在服务器上使用 CouchDB?

最佳答案

更新 (2012/05) :如果您的目标是 Mac OS X and/or iOS,请查看 Couchbase 的新 TouchDB 项目或 Android .这些实际上在引擎盖下使用 SQLite(至少现在是这样),但可以复制到“真实的”CouchDB 服务器/从“真实”CouchDB 服务器复制。另一个终于开始成熟的客户端替代方案是 PouchDB ,它在支持 IndexedDB 的浏览器引擎中运行。使用这些或使用它们来激发到另一个桌面平台的类似端口现在正在成为一条更好的路径。

原答案:

There's no way of packaging up a CouchDB instance, distributing it as part of a desktop application and running it in the context of that application to provide local storage and synchronisation to a central database.



此时,您的陈述实际上是正确的,尽管可以将 CouchDB 包含在应用程序中——例如,请参阅 CouchDBX.app,它是 CouchDB 前缀包及其所有依赖项的精简包装器。

构建 CouchDB 应用程序的最简单方法是假设用户已经拥有 a CouchDB server运行。这比听起来容易,尤其是使用 Couchone 的托管或预构建的应用程序,如 OS X 上的 CouchDBX 或 Ubuntu 上的 DesktopCouch。后者特别有趣,因为如果我理解正确的话,它现在默认包含在 Ubuntu 中,当您通过 D-Bus 查询其端口时,它会自动为每个用户启动一个 CouchDB 服务器。使用 launchd 和 Bonjour 在 OS X 上可以(并且应该)做类似的事情。

因此,当您编写时,您要么将应用程序设计为以本地格式存储数据,并可选择与您提供的 CouchDB 服务同步,要么您必须 build并将所有 Erlang、SpiderMonkey 和 CouchDB 与您的应用程序以及一些脚本捆绑在一起,以确保它在需要时运行。这是可能的,但显然这些都不是理想的,相信我,你不是唯一一个希望为面向桌面的应用程序提供更简单的解决方案的人!

关于couchdb - CouchDB 真的可以用于桌面应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4446511/

相关文章:

couchdb - CouchDB 附件的 md5 摘要格式是什么?

python - 也可以通过网络同步的小型 "embeddable"数据库?

java - 如何从 Webview Javafx 获取元素

java - Java 是开发跨平台 GUI 应用程序的最佳语言吗?

通过 USB 连接的任何设备的 C# IMEI 检测

java - 为独立 JavaFX 应用程序配置 USB token

javascript - 如何在沙发应用程序中使用 couch.js?

javascript - Couchapp 在查询 View 时返回 304

javascript - 嵌套回调时为空数组

html - 在桌面图形化独立应用程序中嵌入 Dart VM