Last updated: 2026-06-12

Managed Models

Catalog

All API Sections

Curated catalog of ZINC-supported managed GGUF models.

The catalog is intentionally small and only includes models that ZINC has explicitly validated for the listed GPU profiles.

18 exports 0 methods src/model/catalog.zig

18 exports shown

enum

CatalogStatus

#
pub const CatalogStatus = enum

Lifecycle status of a catalog entry, controlling visibility and UI treatment.

src/model/catalog.zig:9

struct

CatalogEntry

#
pub const CatalogEntry = struct

A single managed-model entry describing its identity, download location, hardware requirements, and tested GPU profiles.

src/model/catalog.zig:18

enum

FitState

#
pub const FitState = enum

VRAM-fit assessment for a catalog entry against a specific GPU budget.

src/model/catalog.zig:48

constant

apple_silicon_profile

#
pub const apple_silicon_profile = "apple-silicon"

Shared GPU profile string used for all Apple Silicon (Metal) devices.

src/model/catalog.zig:60

constant

entries

#
pub const entries = [_]CatalogEntry{

The complete list of ZINC-validated managed models available for download.

src/model/catalog.zig:63

function

find

#
pub fn find(id: []const u8) ?*const CatalogEntry

Look up a catalog entry by its short identifier, returning null if not found.

src/model/catalog.zig:195

function

findForLoadedModel

#
pub fn findForLoadedModel(managed_id: ?[]const u8, model_path: []const u8, display_name: []const u8) ?*const CatalogEntry

Match a loaded model back to a catalog entry, even when it was opened from a raw path instead of a managed-model id.

Resolution order: managed id → parent directory name (for managed-cache `model.gguf` paths) → file-name exact match → file-name compact-case-insensitive match → display-name fuzzy match.

Parameters

managed_id
Optional catalog id previously recorded for this model; tried first.
model_path
Absolute filesystem path to the GGUF file being loaded.
display_name
Human-readable name used as a last-resort fuzzy key.

Returns

Pointer into `entries`, or null when no catalog entry matches.

src/model/catalog.zig:228

function

profileForGpu

#
pub fn profileForGpu(config: gpu_detect.GpuConfig) []const u8

Map a detected Vulkan GPU configuration to its catalog profile string.

RDNA4 is split by VRAM tier (≥28 GiB → "amd-rdna4-32gb", ≥14 GiB → "amd-rdna4-16gb", otherwise "amd-rdna4-small"); RDNA3 is split by VRAM tier (≥14 GiB → "amd-rdna3-16gb", otherwise "amd-rdna3-small"); all other vendors map to a single string each.

Parameters

config
GPU vendor/VRAM description produced by `gpu_detect`.

Returns

Catalog profile key that can be matched against `CatalogEntry.tested_profiles`.

src/model/catalog.zig:262

function

profileForMetal

#
pub fn profileForMetal() []const u8

Return the catalog profile string for Apple Silicon Metal devices.

src/model/catalog.zig:276

constant

nvidia_cuda_profile

#
pub const nvidia_cuda_profile = "nvidia-cuda"

Shared GPU profile string used for all NVIDIA (CUDA) devices.

src/model/catalog.zig:281

function

profileForCuda

#
pub fn profileForCuda() []const u8

Return the catalog profile string for NVIDIA CUDA devices.

The CUDA backend does not split by VRAM tier the way Vulkan/RDNA4 does — fit is decided by the live `freeMemory()` budget — so a single profile string is sufficient.

src/model/catalog.zig:286

function

supportsProfile

#
pub fn supportsProfile(entry: CatalogEntry, profile: []const u8) bool

Return whether the entry has been tested on the given GPU profile.

Parameters

entry
Catalog entry to check.
profile
Profile string such as `"amd-rdna4-32gb"` or `apple_silicon_profile`.

Returns

true if `profile` appears in `entry.tested_profiles`.

src/model/catalog.zig:294

function

fitsGpu

#
pub fn fitsGpu(entry: CatalogEntry, vram_budget_bytes: u64) bool

Return whether the model's VRAM requirement fits within the given budget without enabling MoE offload.

Strict — does not consider the offload escape hatch. Use `fitState` for the offload-aware tri-state assessment.

src/model/catalog.zig:304

function

requiredVramWithOffload

#
pub fn requiredVramWithOffload(entry: CatalogEntry) u64

VRAM required when MoE expert tensors are offloaded to host RAM.

Equal to `required_vram_bytes` for dense models (no offloadable tensors).

src/model/catalog.zig:310

function

fitState

#
pub fn fitState(entry: CatalogEntry, vram_budget_bytes: u64) FitState

Tri-state fit assessment that distinguishes "fits as-is" from "fits only with `ZINC_OFFLOAD_MOE_EXPERTS=1`".

Use this to surface the offload escape hatch to users when a model would otherwise look unsupported.

src/model/catalog.zig:318

function

requiresOffloadToFit

#
pub fn requiresOffloadToFit(entry: CatalogEntry, vram_budget_bytes: u64) bool

Return true when the model needs `ZINC_OFFLOAD_MOE_EXPERTS=1` to fit (does not fit by itself but does fit with offload enabled).

src/model/catalog.zig:326

function

supportedOnCurrentGpu

#
pub fn supportedOnCurrentGpu(entry: CatalogEntry, profile: []const u8, vram_budget_bytes: u64) bool

Return whether the model is both tested on the given profile and fits in VRAM without MoE offload.

Equivalent to `supportsProfile and fitsGpu`.

Parameters

entry
Catalog entry to evaluate.
profile
Detected GPU profile string (e.g. from `profileForGpu`).
vram_budget_bytes
Available VRAM budget in bytes.

Returns

true only when both conditions hold; does not consider offload.

src/model/catalog.zig:336

function

ggufArchForFamily

#
pub fn ggufArchForFamily(family: []const u8) ?[]const u8

Map a catalog family string to the GGUF architecture string that models in that family use.

Returns null for unrecognized families — the caller should treat that as an error (a catalog entry with no known architecture mapping). Note that `"qwen3.5"` and `"qwen3.6"` both map to `"qwen35"` because the GGUF file declares the SSM+attention hybrid architecture under that name.

Parameters

family
Value of `CatalogEntry.family` (e.g. `"gemma4"`, `"qwen3.6"`).

Returns

GGUF architecture identifier, or null if the family is not recognized.

src/model/catalog.zig:347