【问题标题】:Zero deployment CouchDB embedded in a Windows app?嵌入在 Windows 应用程序中的零部署 CouchDB?
【发布时间】:2011-09-30 00:22:46
【问题描述】:

我可能在这里做梦,但想知道是否有可能在 Windows 应用程序中完全嵌入一个最小的 CouchDB 引擎,这样该应用程序就可以运行而无需在用户的计算机上安装(CouchDB/Erlang)。

【问题讨论】:

  • 这确实是圣杯。 Erlang 与大多数流行语言有着不同的历史(它不是在 Unix 水中游泳的鱼)。尽管这听起来很疯狂,但嵌入 V8 或 NodeJS 并使用 PouchDB 可能会更好。让 PouchDB 与 Couch 具有同等功能可能比让 Erlang 可嵌入更容易。核心 Couch 代码库只有 20k 行。我知道这很疯狂(因此是评论,而不是回答),但这并不是 疯狂。
  • PouchDB 听起来很有趣——你有链接吗?
  • @chaiguy - github.com/mikeal/pouchdb 不过,从历史上看,这项努力往往是一个不断变化的目标。不幸的是,它不能从 V8/node.js 很好地工作,因为它是为浏览器使用而构建的——IIRC 它假设一个带有 IndexedDB 的 DOM,甚至使用了一点 jQuery!相信我,你不是唯一一个想要在没有 CouchDB 的重量级 Mozilla/Erlang 依赖项的情况下构建 CouchApps 的人,这只是社区资源的问题......

标签: windows erlang couchdb


【解决方案1】:

虽然不是代码解决方案,但您可以使用其中一种捆绑应用程序,将文件和其他文件嵌入到一个可执行文件中。一个例子是BoxedApp

【讨论】:

    【解决方案2】:

    何必呢。在 Windows 上安装 Erlang 非常容易。只需捆绑包括 erl.exe 二进制文件在内的整个内容,然后让安装程序将其解压缩到一个文件夹中。您唯一需要更改的是批处理文件,或者更好的是,丢弃它们并编写您自己的批处理文件来启动 CouchDb。此外,最好使用与普通 Erlang 端口(或通常的 CouchDB 端口)不同的端口,甚至可以让 Erlang 使用 localhost 作为其“短名称”。

    【讨论】:

    • 一个问题是尺寸。安装程序大约为 82 兆。这对于一个 2 兆的小应用程序来说是荒谬的。我希望可能有一个精简的嵌入式版本或其他东西。
    • 如果 Couchdb 不利用 Erlang VM 和 Erlang OTP 库,它就不会是一个 2 兆的小应用程序。这就像询问如何在没有 JVM 或 Java 类库的情况下打包 Java 应用程序。如果有帮助,请将 Erlang 运行时与 CouchDB .beam 文件分开打包。这样人们就可以升级而无需一遍又一遍地下载“Erlang 运行时”。
    • 另一个原因是如果你想在 IIS/网站托管上运行 couchdb。您有权复制文件并在 IIS 中运行,但不能将某些东西安装到操作系统中。
    【解决方案3】:

    我已经提供了这种精简/捆绑的功能 - 在这里查看 https://github.com/dch/couchdb/downloads,特别是 16MiB erlang 的精益捆绑 + 所有沙发爱在这里 https://github.com/downloads/dch/couchdb/couchdb-1.1.0+COUCHDB-1152_otp_R14B03_lean.7z

    wiki.apache.org/couchdb/Quirks_on_Windows 上有关在 windows 上捆绑和嵌入 couchdb 的一些简短说明,包括如何在启动时隐藏 erlang 窗口(erl.exe -detached)。

    如果您想了解更多信息或帮助,请咨询 CouchDB @user 邮件列表。

    【讨论】:

      【解决方案4】:

      CouchDB wiki 确实为Integrating CouchDB into your Windows Applications 提供了至少一些提示。 YMMV,据我所知,它或多或少只是有关创建可重定位构建的提示。除了确保套接字绑定只发生在默认的 localhost 接口上。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-23
        • 1970-01-01
        • 2011-05-26
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 2018-01-30
        • 2012-08-09
        相关资源
        最近更新 更多