honeycombDocs
Publish an app / HONEYCOMB

Package format

The honeycomb.yaml schema, target layout, and archive safety rules.

One archive, six native targets#

A Honeycomb release is a gzip-compressed tar archive with honeycomb.yaml at its root and platform files below targets/. Do not wrap these in an extra parent directory.

my-app/
  honeycomb.yaml
  targets/
    linux-x86_64/my-app
    linux-aarch64/my-app
    windows-x86_64/my-app.exe
    windows-aarch64/my-app.exe
    macos-x86_64/my-app
    macos-aarch64/my-app

Complete manifest#

format_version: 1
app_id: my-org>my-app
version: 1.0.0
bin:
  my-app: main
targets:
  linux-x86_64:
    root: targets/linux-x86_64
    executables:
      main: my-app
  linux-aarch64:
    root: targets/linux-aarch64
    executables:
      main: my-app
  windows-x86_64:
    root: targets/windows-x86_64
    executables:
      main: my-app.exe
  windows-aarch64:
    root: targets/windows-aarch64
    executables:
      main: my-app.exe
  macos-x86_64:
    root: targets/macos-x86_64
    executables:
      main: my-app
  macos-aarch64:
    root: targets/macos-aarch64
    executables:
      main: my-app

Download this manifest. Replace the application ID and payload names with your own.

Field reference#

Field Meaning
format_version Must be 1.
app_id Exact permanent org>app identity registered in Honeycomb.
version Semantic release version, for example 1.0.0.
bin Public command name → logical executable identifier. At least one command is required.
targets Target ID → root directory and executable mappings.
targets.<id>.root Safe relative directory below targets/; target roots cannot overlap.
targets.<id>.executables Logical executable identifier → path relative to that target root.

For example, bin: { my-app: main } exposes my-app on PATH and resolves main separately for each platform. Multiple commands may map to logical executables. Unknown manifest fields are rejected.

Supported targets#

Required: linux-x86_64, linux-aarch64, windows-x86_64, windows-aarch64, macos-x86_64, macos-aarch64.

Optional: linux-i686, linux-armv7hf, windows-i686. Other target identifiers are rejected. These are Honeycomb target names, not Rust target triples.

Limits and validation#

Limit Value
Compressed archive 512 MiB
Total expanded files 2 GiB
Archive entries 50,000
Manifest size 1 MiB

Links (symbolic or hard), special files, traversal, absolute paths, duplicate/case-colliding paths, and unexpected top-level entries are rejected. Use portable file names; Windows reserved names and unsafe characters are forbidden. Non-Windows executables must have an executable permission bit when validated on Unix.

chmod +x my-app/targets/linux-*/my-app my-app/targets/macos-*/my-app
honeycomb validate my-app
honeycomb pack my-app --output my-app-1.0.0.tar.gz

Package runtime assets inside the appropriate target root. Do not include credentials, source working trees, or installer scripts that mutate the host. The installer selects a target, validates and stages its payload, then activates owned commands. It does not run package lifecycle scripts.