A Starkit is a wrapping mechanism for delivering an application in a self-contained, installation-free, and highly portable way. The name comes from being based on a StandAlone Runtime, called Tclkit.
A Starkit creates the illusion of a "file system in a file" - on the outside, it's a single file, yet the application code continues to see a complete directory of scripts, extensions, packages, images, and whatever other files it needs. Starkits can be multi-platform. And they can be written to, due to the underlying Metakit database.
Starkits are widely being adopted for deploying Tcl/Tk-based applications:
- they've become the standard way to "wrap" apps in ActiveState's TclDevKit
- Brent Welch's Practical Programming for Tcl/Tk has a chapter on Starkits
- there's a public Starkit Distribution archive called SDarchive
- a Starkit tutorial was given at the 10th Annual Tcl/Tk Conference
- Steve Landers presented Starkits at the AUUG 2003 Conference
- Tclkits and Starkits are on several book and conference CD-ROMs
- commercial projects are latching on to the benefits: "it runs out of the box"
Why the buzz?
An excellent paper describing what it's all about, is Steve Landers' "Beyond Tclkit - Starkits, Starpacks, and other *stuff", presented at the 2002 Tcl/Tk conference.
Getting up to speed with Starkits, i.e. deploying an application as a Starkit if you're a developer, is covered quite well by the above documentation. Still, there's a lot of additional ground to cover if you want to merge your development and deployment work seamlessly, or if you need to build multi-platform starkits, loadable extensions, or add things like embedded help, graphics, or other datafiles.
Starkits require Tcl 8.4 or later (older releases, and the term "Scripted Document", are deprecated). You also need a few other packages, which are all part of the self-contained Tclkit runtime (as well as included in ActiveTcl). The SDX utility has a few convenient options to create, inspect, and unravel Starkits.
See the introduction page on how to get started with Starkits and Tclkit.
See also the technical details about How Starkits are mapped to Metakit views.