Core Hosting Model

May 19, 2026 ยท View on GitHub

Surfaces

SurfacePurposeClient commands
ForgeGit review, PR/MR submission, auth, CI triggerelda ci, elda forge
RemoteSigned metadata and package-definition authorityelda rmt *, elda sync
CacheContent-addressed payload mirror onlyelda cache *
InteremoteDynamic source repo translated during syncelda rmt preview, elda sync
Snapshot importOne-time local recipe importelda a <url>

Rules

  • elda sync reads remotes, not caches. Caches accelerate payload fetch after the signed index names a digest.
  • Remotes define package names, versions, dependencies, providers, source lanes, binary payload URLs, channels, and trust policy.
  • Caches mirror blobs at GET <cache base>/<sha256> only.
  • Source-only remote: signed index carries package records with pkg_lua, repo_commit, and packages_url; no asset_url / sha256 / payload_sig.
  • Binary remote: same as source-only plus payload fields and optional SBOM/attestation URLs.
  • Interemote: index_url points at a foreign metadata Git tree (Gentoo overlay, Void srcpkgs). Elda translates on sync; not a binary repo.
  • Snapshot import: elda a <url> writes local editable recipes once; unlike interemotes, it does not keep updating from upstream on sync.

Deployment Styles (Summary)

StyleIndexRecipe GitBinaries
Source-only nativeSigned index-v1.json.zstRequired via packages_urlClients build
Full binary nativeSigned indexRequired for source laneasset_url + sigs
InteremoteGenerated at sync from upstream GitUpstream repo is the sourceNone from interemote
Cache mirrorN/AN/ADigest files only

See source-only-native-remote.md, binary-binhost-remote.md, and interemote-foreign-repos.md.