BAKWARE-将Elixir应用程序编译为单个可执行的二进制文件

2020-09-17 18:36:29

你有没有羡慕过分配公用设施是多么容易呢?或者,也许您的脚本变得过多,并且遇到了需要特定于平台的代码的库的障碍?或者那个OTP版本看起来很容易发布,但不知何故,运行untar正好有足够的摩擦让人抱怨你使用长生不老药。

BAKWARE通过扩展MixRelease来解决这些问题,使其能够将Elixir项目转换为可复制和直接运行的单个二进制文件。不需要安装Erlang或untar文件。这些二进制文件看起来和感觉上都像来自其他语言的构建产品。

支持OSX和Linux(我们编写代码时考虑到了Windows和BSD,因此可能离支持这些平台不远了)。

对于简单的Elixir、Phoenix和Scen应用程序,Linux上的可执行文件大小为12-15 MB,OSX上的可执行文件大小为5-7 MB(启用Zstd压缩)。

BAKWARE将压缩的OTP版本存档与特定于SmartPlatform的自解压程序相结合。自解压程序在第一次执行时将OTP释放扩展为高速缓存,并在随后的调用中重用该高速缓存。由于使用了Zstd压缩,扩展速度非常快,最终用户几乎看不到。

试用Bakeware的最好方法是克隆此存储库并试用示例。

由于这个项目的主要目的是避免安装Elixir,并自行构建二进制文件,因此您可以从GitHub Release页面下载我们构建的二进制文件。我们是为64位Linux(我们使用的是基于Debian的操作系统)和MacOS构建的。下载适用于您的平台的tarball。二进制名对应于示例。有关命令行参数和预期内容的信息,请阅读示例自述。

主烘焙器库、示例和SousCheck软件更新服务器中提供了文档。

以下项目是我们的延伸目标。这些项目是用于自动更新二进制文件的客户端库和示例服务器。其想法是应用程序可以询问服务器是否有可用的更新。如果是,则下载该应用程序,并使用新版本自动重新启动应用程序。

Bakeware_updater-小型Elixir库,用于检查更新服务器是否有可用的更新,下载并将其应用于现有的可执行文件。

所有代码都是在Apache-2.0下许可的,除了zstd,它是双重许可的BSD/GPL。有关更多详细信息,请参阅其许可证和复制文件。