using starkits without tclkit

Starkits use the Metakit [1] embedded database as file storage mechanism. In addition, Zlib [2] is used to store files in compressed form (this is the default, it can be turned off).

Neither of these are part of a "standard" Tcl/Tk distribution (such as ActiveTcl [3]). The Trf extension [4] does contain the "zip" command as another binding to zlib, and Critlib has a binding based on Critcl as well [5].


There is a ReadKit script written in pure Tcl which lets you unpack a starkit to a directory/file hierarchy:

    https://www.equi4.com/pub/sk/readkit.tcl

As long as a starkit does not specifically use Metakit or zlib, you may be able to run it in unpacked form with any modern "raw" installation of Tcl/Tk, using a command line such as:

    wish mystarkit.vfs/bin/main.tcl

If that does not work, you will need to make changes to the scripts, but at least they will be there in unpacked form.


Running this script without arguments, e.g. tclsh readkit.tcl, produces a brief usage summary:

    ReadKit 1.0 is a pure Tcl script to view and extract the contents of
    starkits (see also <https://www.equi4.com/starkit/>).
    Run this script with any tclsh, wish, or tclkit release >= 8.0:
        readkit -l starkit      lists the contents of the starkit
        readkit -x starkit      extract full contents to "starkit.vfs/"
        readkit -z starkit      copy to a zip archive named "starkit.zip"
    Keep in mind that ZLIB decompression support is required to be able
    to extract compressed files (the default), e.g. Trf or Zlib packages.
    Note also that if you can't extract, you can still copy to zip format.
    This utility will not overwrite existing files or directories.