Zapps is short for "Zero Dependency Applications", and is a style of executable and library linking that is heavily used and encouraged in the ecosystem around Warpforge.
The main features of Zapps are that they run on any kind of linux environment, without requiring any libraries or dependency management, and without requiring any installation steps at all beyond existing on the filesystem. This makes Zapps very easy to use, and we favor them in the Warpforge ecosystem for this reason.
The Zapp project has its own website: https://zapps.app/
Relationship of Zapps to Warpforge
Zapps were pioneered within Warpforge, because Warpforge was a great environment in which to test such a thing, and fully ensure its system independence and portability... as well as because Zapps are great to use within Warpforge, since they require no post-install hooks, meaning you just mount them and you're good to go.
Depsite that origin, and that mechanical sympathy, Zapps are a totally independent concept.
You can use Zapps without
warpforge, and you can use
warpforge without Zapps,
and you can build and test a Zapp without
warpforge (although it's hard!), and so forth.
The Warpsys Catalog is predominantly full of software that's been packaged in the Zapp style.
The Linkwarp tool, also a part of the Warpforge ecosystem,
makes it very easy to gather large numbers of Zapps together in one
$PATH, for ease of use.
Some older documentation that evolved into Zapps can still be found in the Warpforge Notion (although we're moving away from using Notion going forward). Here are the most relevant pages:
- Wrangling Dynamic Library Linking
- Goal: Path-agnosticism
- Goal: Co-installability
- Convention: Package File Layout
- Wrangling Shebangs remains a somewhat unsolved problem.