当前 Tcl/Tk starpack 和正确的用例?

Current Tcl/Tk starpack and proper use case?

首先在 SQLite 网站上阅读了相关内容后,我打算尝试在 Tcl/Tk 中构建(移动)桌面应用程序。我在 openlibrary.org 上阅读了一些旧书,并购买了其中一本的新印刷版。它似乎是一个不错的文本,但对构建 starpack 的某些实用程序的网站的所有引用似乎都已过时。

我找不到 tclkit。一个声称您可以在线构建一个的站点失败了。我遇到了 Freewrap,它最近于 2020 年 9 月发布,但仍落后于 Tcl/Tk 的最新版本。我不明白它的网站上的 ActiveTcl 是什么。

这是可以从源代码编译的东西还是只能从这些实用程序之一获得?

我不是要批评它,而是想确保我能够在项目结束时构建一个可执行文件,并在正确的设置中开始。

也许我误解了什么。我一直在使用通过 SQLite 合并编译的 C 和 Web 扩展的本机消息传递 API 来使用浏览器作为 UI。它工作得很好;然而,在阅读 Tcl/Tk 之后,似乎所有相同的操作都可以更有效地完成,并且无需浏览器,并且在需要时仍然通过 Tcl 连接到服务器。我很喜欢那个。

最终,我想构建一个类似于具有预建表格的高度可搜索图书馆的东西,类似于圣经索引的结构,这样可以快速执行跨文本搜索和比较,并链接到其他资源.当我有可用的新资源时,我希望能够从服务器轻松地为用户添加必要的组件,以便这些资源成为可搜索内容的一部分。

我意识到这有点含糊,但这对 Tcl/Tk 来说是一个很好的用例吗?它可以做成星际包吗?如果是的话,目前的实用程序或制作方法在哪里?找到了吗?

谢谢。


遇到这个 article 很有帮助。还有一本2017年最近的书

starkit 是一种存档格式(基于 Metakit 单文件数据库格式),已用于分发 Tcl 应用程序和扩展;这些可以是特定于平台的或跨平台的,具体取决于您放入的内容。 Tclkit(或其来自 Kitgen 的更现代版本)是一个单文件 Tcl 发行版,可以读取和执行 starkit;它自然是特定于平台的。 starpack 是 tclkit 基本运行时和 starkit 打包应用程序的组合。

由于整个 starkit/tclkit 系统基于 Tcl 的虚拟化文件系统支持,您可以将几乎任何您想要的东西放入 *kit 中,包括扩展 DLL。 关于唯一不好放入的是数据库(例如 SQLite DB 文件);虽然您可以在里面放一份副本,但您需要将其提取出来才能使用。我提到这一点是因为听起来包含一个数据库非常适合您的应用程序。

对于更新,最简单的方法是让用户下载应用程序的新副本。因为你可以把它做成一个预打包的文件,这对他们来说很容易处理更新。 (您可以进行自动更新,但是您必须跟踪保存更新的文件;并非所有平台都允许更新 运行 可执行文件。)


Tcl 8.7 将包含一种用于执行类似操作的打包技术,但基于不同的文件格式。不过,这仍然是 alpha。