The Zomp Source Management System

Zomp is a redundant, distributed, eventually replicated package repository system for Erlang programs. It uses a from-source approach to package management.

ZX is a client utility that includes a program fetcher/launcher for end-users and a suite of tools for developers. It simplifies the process of writing, publishing and running programs.


This site constitutes the high-level documentation for Zomp and ZX. While required behaviors are defined, protocols are specified, and file format details are expressed in enough detail to implement Zomp (and most of ZX) from scratch, implementation details are not covered. Refer to the Zomp and ZX project repositories for internals.

0: Quickstart

For folks who just want to start doing stuff.

1: ZX Usage

Comprehensive explanation of ZX usage with examples.

If you just want to run programs, see the quickstart page. If you are a developer, project maintainer or sysop you should skim over this once to get an idea what ZX really does and bookmark it for reference.

2: System Files

An explanation of the system files and directory layout.

3: v1 Zomp Protocol

The v1 Zomp protocol definition. Read this if you are in need of a long nap.

4: Type Specifications

A collection of every typespec in the system, as per Dialyzer.

5: The Reason

A high-level description of what problem the system solves and the approach taken. If you are trying to get an understanding of what Zomp is, or why it was written and what tradeoffs were made in its design, this is the place to look.

6: Roadmap

Planned features.