Xybrid

Registry

Model distribution system

The Registry is Xybrid's model distribution system. It organizes, versions, and serves model bundles to SDKs and applications.

How It Works

Registry Structure

Bundles are organized by model ID, version, and platform:

~/.xybrid/registry/
├── index.json                          # Bundle index
├── wav2vec2-base-960h/
│   └── 1.0/
│       ├── macos-arm64/
│       │   └── wav2vec2-base-960h.xyb
│       └── ios-arm64/
│           └── wav2vec2-base-960h.xyb
├── whisper-tiny/
│   └── 1.0/
│       └── macos-arm64/
│           └── whisper-tiny.xyb
└── kokoro-82m/
    └── 0.1/
        └── macos-arm64/
            └── kokoro-82m.xyb

index.json

The index tracks all available bundles:

{
  "wav2vec2-base-960h/1.0/macos-arm64": {
    "model_id": "wav2vec2-base-960h",
    "version": "1.0",
    "target": "macos-arm64",
    "size_bytes": 377654321,
    "path": "~/.xybrid/registry/wav2vec2-base-960h/1.0/macos-arm64/wav2vec2-base-960h.xyb"
  }
}

Platform Detection

The registry automatically detects the current platform:

PlatformIdentifier
macOS (Apple Silicon)macos-arm64
macOS (Intel)macos-x86_64
iOSios-arm64
Androidandroid-arm64
Linuxlinux-x86_64
Windowswindows-x86_64

Registry Server

Start Server

just registry::serve-local

Serves from ~/.xybrid/registry/ on http://localhost:8080.

Endpoints

EndpointDescription
GET /indexList all bundles
GET /bundles/{id}/{version}/{platform}/{id}.xybDownload bundle
GET /healthHealth check

Using in Pipelines

Reference the registry URL in pipeline YAML:

name: "Speech to Text"
registry: "http://localhost:8080"

stages:
  - wav2vec2-base-960h@1.0

Registry Configuration Options

Simple URL:

registry: "http://localhost:8080"

File Path (Local):

registry: "file:///Users/me/.xybrid/registry"

Resolution Flow

When a pipeline references whisper-tiny@1.0:

  1. Parse Reference - Extract model ID and version
  2. Detect Platform - Determine current platform
  3. Check Cache - Look in ~/.xybrid/registry/
  4. Download - Fetch from registry server if not cached
  5. Extract - Unzip .xyb bundle
  6. Load - The SDK reads model_metadata.json and initializes the model

On this page