Skip to main content
Each component is its own Zig project. Same build commands for apps and libraries.

Prerequisites

Install Zig 0.16.0 and system dependencies:
Extra packages by component:

Basic build

Libraries link through path dependencies in sibling build.zig.zon files (../otter-render, etc.) when you build from the monorepo checkout.

Build options

Common flags across apps: Release build example:

Packaging (otter-zenith)

PikaOS packages come from otter-zenith:
This clones tagged releases, assembles a source tree, and runs dpkg-buildpackage. End users install with pikman install otter-shell. They do not need Zig.

Benchmarks

Per-component git workflow

Each component is its own repo. From inside a component directory:
Do not commit from the monorepo root. It is not a git repository.

App structure convention

Most apps use this layout: Long-running daemons use GeneralPurposeAllocator. One-shot overlays (launcher, logout) use ArenaAllocator.