在Windows应用程序中嵌入Zero deployment CouchDB,是否可行?

11

我可能在做白日梦,但我想知道是否有完全内嵌最小CouchDB引擎于Windows应用程序中的可能性,以使该应用程序可以在用户计算机上运行而无需安装(CouchDB/Erlang)。


请参见https://dev59.com/VXI-5IYBdhLWcg3wj5FG。 - Pindatjuh
2
这确实是圣杯。Erlang的历史与大多数流行语言不同(它不是在Unix水中游动的鱼)。尽管听起来很疯狂,但嵌入V8或NodeJS并使用PouchDB可能会更好。将PouchDB与Couch的功能平衡相比,让Erlang可嵌入可能更容易。核心Couch代码库仅有20k行。我知道这很疯狂(因此是评论,而不是答案),但也不是那么疯狂。 - JasonSmith
PouchDB听起来很有趣——你有任何链接吗? - devios1
1
@chaiguy - https://github.com/mikeal/pouchdb/ 这个项目历史上一直是一个不断变化的目标。不幸的是,它无法在V8/node.js上很好地工作,因为它是为浏览器使用而构建的 - 如果我没记错的话,它假定有一个带有IndexedDB的DOM,甚至还使用了jQuery!相信我,你不是唯一想要构建没有CouchDB的重量级Mozilla/Erlang依赖关系的CouchApps的人,这只是社区资源的问题... - natevw
4个回答

5
我已经提供了这个简化/打包的功能-请查看此处 https://github.com/dch/couchdb/downloads,特别是16MiB Erlang + 所有couch支持的精简包,请访问此链接https://github.com/downloads/dch/couchdb/couchdb-1.1.0+COUCHDB-1152_otp_R14B03_lean.7z 关于在Windows上捆绑和嵌入CouchDB的一些简要说明,请访问wiki.apache.org/couchdb/Quirks_on_Windows,其中包括如何在启动时隐藏Erlang窗口(erl.exe -detached)。
如果您想获得更多信息或帮助,请在CouchDB @user邮件列表上询问。

2

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


1
CouchDB的维基至少提供了一些将CouchDB集成到Windows应用程序中的提示。据我所知,这可能只是关于创建可重定位构建的提示。在安装过程中,您可能需要在local.ini文件中生成一个坚实的随机管理员用户名/密码,并设置所有创建的数据库的适当权限(以防止任何潜在的跨站点脚本漏洞),并确保套接字绑定仅发生在默认的localhost接口上。

1

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


一个问题是大小。安装程序大约有82兆字节。对于一个只有2兆字节的小应用程序来说,这太荒谬了。我希望可能会有一个精简的可嵌入版本或其他什么东西。 - devios1
1
如果Couchdb没有利用Erlang VM和Erlang OTP库,它就不可能只是一个2兆大小的应用程序。这就像询问如何在没有JVM或Java类库的情况下打包Java应用程序一样。如果有帮助的话,可以将您的Erlang运行时与CouchDB .beam文件分开打包。这样人们就可以升级而不必一遍又一遍地下载“Erlang运行时”。 - Michael Dillon
另一个原因是,如果你想在IIS/网站托管上运行couchdb。你有复制文件并在IIS中运行的权限,但不能安装任何东西到操作系统中。 - DarcyThomas

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