[{"data":1,"prerenderedAt":570},["ShallowReactive",2],{"navigation_docs":3,"landing":217},[4,35,76,100,125,143,164,185,194,212],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"llama-crab documentation","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"First run","\u002Fgetting-started\u002Ffirst-run","1.getting-started\u002F3.first-run","i-lucide-play",{"title":25,"path":26,"stem":27,"icon":28},"Models","\u002Fgetting-started\u002Fmodels","1.getting-started\u002F4.models","i-lucide-package",{"title":30,"path":31,"stem":32,"icon":33},"Backends","\u002Fgetting-started\u002Fbackends","1.getting-started\u002F5.backends","i-lucide-cpu",false,{"title":36,"icon":37,"path":38,"stem":39,"children":40,"page":34},"Rust SDK","i-lucide-code","\u002Frust","2.rust",[41,46,51,56,61,66,71],{"title":42,"path":43,"stem":44,"icon":45},"Package Map","\u002Frust\u002Fworkspace","2.rust\u002F1.workspace","i-lucide-layers",{"title":47,"path":48,"stem":49,"icon":50},"Model Lifecycle","\u002Frust\u002Flifecycle","2.rust\u002F2.lifecycle","i-lucide-refresh-cw",{"title":52,"path":53,"stem":54,"icon":55},"Text Completion","\u002Frust\u002Fcompletion","2.rust\u002F3.completion","i-lucide-text-cursor",{"title":57,"path":58,"stem":59,"icon":60},"Chat","\u002Frust\u002Fchat","2.rust\u002F4.chat","i-lucide-messages-square",{"title":62,"path":63,"stem":64,"icon":65},"Embeddings","\u002Frust\u002Fembeddings","2.rust\u002F5.embeddings","i-lucide-vector-square",{"title":67,"path":68,"stem":69,"icon":70},"Multimodal","\u002Frust\u002Fmultimodal","2.rust\u002F6.multimodal","i-lucide-eye",{"title":72,"path":73,"stem":74,"icon":75},"Structured Output","\u002Frust\u002Fstructured-output","2.rust\u002F7.structured-output","i-lucide-braces",{"title":77,"icon":78,"path":79,"stem":80,"children":81,"page":34},"Server","i-lucide-server","\u002Fserver","3.server",[82,86,91,96],{"title":83,"path":84,"stem":85,"icon":23},"Running the Server","\u002Fserver\u002Frunning","3.server\u002F1.running",{"title":87,"path":88,"stem":89,"icon":90},"OpenAI-Compatible API","\u002Fserver\u002Fopenai-api","3.server\u002F2.openai-api","i-lucide-cloud",{"title":92,"path":93,"stem":94,"icon":95},"Streaming","\u002Fserver\u002Fstreaming","3.server\u002F3.streaming","i-lucide-radio",{"title":97,"path":98,"stem":99},"Operations","\u002Fserver\u002Foperations","3.server\u002F4.operations",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":34},"Tauri","i-lucide-app-window","\u002Ftauri","4.tauri",[106,111,116,121],{"title":107,"path":108,"stem":109,"icon":110},"Tauri Plugin","\u002Ftauri\u002Fplugin","4.tauri\u002F1.plugin","i-lucide-plug",{"title":112,"path":113,"stem":114,"icon":115},"Tauri Permissions","\u002Ftauri\u002Fpermissions","4.tauri\u002F2.permissions","i-lucide-shield",{"title":117,"path":118,"stem":119,"icon":120},"TypeScript Client for Tauri","\u002Ftauri\u002Ftypescript-client","4.tauri\u002F3.typescript-client","i-simple-icons-typescript",{"title":122,"path":123,"stem":124},"Tauri section update notes","\u002Ftauri\u002Fupdate_notes","4.tauri\u002FUPDATE_NOTES",{"title":126,"icon":120,"path":127,"stem":128,"children":129,"page":34},"TypeScript","\u002Ftypescript","5.typescript",[130,134,139],{"title":131,"path":132,"stem":133,"icon":28},"Packages","\u002Ftypescript\u002Fpackages","5.typescript\u002F1.packages",{"title":135,"path":136,"stem":137,"icon":138},"Client Contracts","\u002Ftypescript\u002Fclient-contracts","5.typescript\u002F2.client-contracts","i-lucide-file-code",{"title":140,"path":141,"stem":142},"TypeScript section update notes","\u002Ftypescript\u002Fupdate_notes","5.typescript\u002FUPDATE_NOTES",{"title":144,"icon":145,"path":146,"stem":147,"children":148,"page":34},"Guides","i-lucide-compass","\u002Fguides","6.guides",[149,154,159],{"title":150,"path":151,"stem":152,"icon":153},"Performance","\u002Fguides\u002Fperformance","6.guides\u002F1.performance","i-lucide-gauge",{"title":155,"path":156,"stem":157,"icon":158},"Mobile","\u002Fguides\u002Fmobile","6.guides\u002F2.mobile","i-lucide-smartphone",{"title":160,"path":161,"stem":162,"icon":163},"Troubleshooting Models","\u002Fguides\u002Ftroubleshooting-models","6.guides\u002F3.troubleshooting-models","i-lucide-wrench",{"title":165,"icon":166,"path":167,"stem":168,"children":169,"page":34},"Reference","i-lucide-book-marked","\u002Freference","7.reference",[170,175,180],{"title":171,"path":172,"stem":173,"icon":174},"Crates and packages","\u002Freference\u002Fcrates","7.reference\u002F1.crates","i-lucide-boxes",{"title":176,"path":177,"stem":178,"icon":179},"Cargo features","\u002Freference\u002Fcargo-features","7.reference\u002F2.cargo-features","i-lucide-toggle-right",{"title":181,"path":182,"stem":183,"icon":184},"Versioning","\u002Freference\u002Fversioning","7.reference\u002F3.versioning","i-lucide-git-branch",{"title":186,"icon":187,"path":188,"stem":189,"children":190,"page":34},"Examples","i-lucide-flask-conical","\u002Fexamples","8.examples",[191],{"title":186,"path":192,"stem":193,"icon":187},"\u002Fexamples\u002Fexamples","8.examples\u002F1.examples",{"title":195,"icon":196,"path":197,"stem":198,"children":199,"page":34},"Contributing","i-lucide-git-pull-request-arrow","\u002Fcontributing","9.contributing",[200,204,207],{"title":201,"path":202,"stem":203,"icon":37},"Development","\u002Fcontributing\u002Fdevelopment","9.contributing\u002F1.development",{"title":186,"path":205,"stem":206,"icon":187},"\u002Fcontributing\u002Fexamples","9.contributing\u002F2.examples",{"title":208,"path":209,"stem":210,"icon":211},"Releases","\u002Fcontributing\u002Freleases","9.contributing\u002F3.releases","i-lucide-rocket",{"title":213,"path":214,"stem":215,"icon":216},"Troubleshooting","\u002Ftroubleshooting","troubleshooting","i-lucide-life-buoy",{"id":218,"title":219,"body":220,"description":219,"extension":561,"meta":562,"navigation":563,"path":564,"seo":565,"stem":568,"__hash__":569},"landing\u002Findex.md","",{"type":221,"value":222,"toc":558},"minimark",[223,294,370,481,528],[224,225,226,257,278],"u-page-hero",{},[227,228,229],"template",{"v-slot:title":219},[230,231,237,238,237,249,237,254],"span",{"className":232},[233,234,235,236],"inline-flex","flex-col","items-center","gap-4","\n  ",[239,240],"img",{"src":241,"alt":242,"className":243},"\u002Flogo.webp","llama-crab logo",[244,245,246,247,248],"size-24","rounded-2xl","shadow-xl","ring-1","ring-default\u002F10",[230,250,253],{"className":251},[252],"text-primary","llama-crab",[230,255,256],{},"Run local GGUF models from your applications",[227,258,259,275],{"v-slot:description":219},[260,261,262,265,266,270,271,274],"p",{},[263,264,253],"code",{}," is a Rust SDK, installable HTTP server, Tauri plugin, and TypeScript client for running local llama.cpp models. Current version: ",[267,268,269],"strong",{},"0.1.8"," (Rust crates and TypeScript packages released in lockstep). MSRV: ",[267,272,273],{},"1.88",".",[260,276,277],{},"Start with the surface you plan to use:",[227,279,280,287],{"v-slot:links":219},[281,282,286],"u-button",{"color":283,"size":284,"to":11,"trailing-icon":285},"primary","xl","i-lucide-arrow-right","Get started",[281,288,293],{"color":289,"size":284,"to":290,"icon":291,"variant":292},"neutral","https:\u002F\u002Fgithub.com\u002FDominguesM\u002Fllama-crab","simple-icons-github","outline","GitHub",[295,296,297,300],"u-page-section",{},[227,298,299],{"v-slot:title":219},"Pick the integration that matches your stack",[227,301,302,314,333,355],{"v-slot:features":219},[303,304,305,307],"u-page-feature",{"icon":37,"to":48},[227,306,36],{"v-slot:title":219},[227,308,309,310,313],{"v-slot:description":219},"Embed local inference directly in Rust applications. Load GGUF models, run text completion, chat, embeddings, structured output, multimodal vision, and (in 0.1.8) resolve Hugging Face repository IDs through the ",[263,311,312],{},"hf-hub"," feature.",[303,315,316,319],{"icon":78,"to":84},[227,317,318],{"v-slot:title":219},"HTTP server",[227,320,321,322,325,326,329,330,332],{"v-slot:description":219},"Run ",[263,323,324],{},"llama-crab-server"," to expose local models behind OpenAI-compatible routes: completions, chat, embeddings, reranking, tokenization, and SSE streaming. The ",[263,327,328],{},"mtmd"," and ",[263,331,312],{}," features are opt-in.",[303,334,335,338],{"icon":102,"to":108},[227,336,337],{"v-slot:title":219},"Tauri plugin",[227,339,340,341,344,345,348,349,351,352,354],{"v-slot:description":219},"Ship local inference inside Tauri v2 desktop applications with ",[263,342,343],{},"tauri-plugin-llama-crab"," and the ",[263,346,347],{},"@llama-crab\u002Ftauri"," TypeScript client. The plugin enables ",[263,350,312],{}," by default and exposes multimodal (vision) chat behind the ",[263,353,328],{}," cargo feature.",[303,356,357,360],{"icon":120,"to":132},[227,358,359],{"v-slot:title":219},"TypeScript packages",[227,361,362,363,366,367,369],{"v-slot:description":219},"Use ",[263,364,365],{},"@llama-crab\u002Fcore"," for shared OpenAI-like contracts, request mappers, and error classes, and ",[263,368,347],{}," for the Tauri IPC client. Both ship ESM, CJS, and type declarations at version 0.1.8.",[295,371,372,375],{},[227,373,374],{"v-slot:title":219},"Built for production workloads",[227,376,377,399,438,460],{"v-slot:features":219},[303,378,379,382],{"icon":45},[227,380,381],{"v-slot:title":219},"Five products, one runtime",[227,383,384,386,387,389,390,392,393,395,396,398],{"v-slot:description":219},[263,385,253],{}," (Rust SDK), ",[263,388,324],{}," (HTTP server), ",[263,391,343],{}," (Tauri v2 plugin), ",[263,394,365],{}," (TS contracts), and ",[263,397,347],{}," (TS client). All are at version 0.1.8.",[303,400,401,404],{"icon":33},[227,402,403],{"v-slot:title":219},"CPU and GPU backends",[227,405,406,407,410,411,414,415,418,419,422,423,426,427,430,431,434,435,437],{"v-slot:description":219},"Pick a Cargo feature for your target: ",[263,408,409],{},"openmp"," for CPU, ",[263,412,413],{},"metal"," for Apple Silicon, ",[263,416,417],{},"cuda"," for NVIDIA, ",[263,420,421],{},"vulkan",", ",[263,424,425],{},"rocm",", or ",[263,428,429],{},"opencl"," for AMD\u002Fcross-vendor, and ",[263,432,433],{},"kleidiai"," for Arm. ",[263,436,328],{}," enables multimodal vision.",[303,439,441,444],{"icon":440},"i-lucide-zap",[227,442,443],{"v-slot:title":219},"OpenAI-compatible API",[227,445,446,447,422,450,422,453,422,456,459],{"v-slot:description":219},"Local models speak the same shape as OpenAI: 12 routes including ",[263,448,449],{},"\u002Fv1\u002Fchat\u002Fcompletions",[263,451,452],{},"\u002Fv1\u002Fcompletions",[263,454,455],{},"\u002Fv1\u002Fembeddings",[263,457,458],{},"\u002Fv1\u002Frerank"," (with three aliases), and extras for tokenization and model listing. SSE streaming follows the OpenAI event format.",[303,461,462,465],{"icon":158},[227,463,464],{"v-slot:title":219},"Mobile presets",[227,466,467,422,470,473,474,477,478,274],{"v-slot:description":219},[263,468,469],{},"LowRam",[263,471,472],{},"Balanced",", and ",[263,475,476],{},"GpuMax"," presets match device class so you can ship the same API across phones, laptops, and workstations. The server mirrors the presets through ",[263,479,480],{},"--mobile-preset low-ram | balanced | gpu-max",[295,482,483,486],{},[227,484,485],{"v-slot:title":219},"Get started in minutes",[227,487,488,499,512,521],{"v-slot:features":219},[303,489,490,493],{"icon":18,"to":16},[227,491,492],{"v-slot:title":219},"Install the crate",[227,494,495,496,498],{"v-slot:description":219},"Add ",[263,497,253],{}," to your Rust manifest, install the C++ toolchain and CMake, then load a GGUF model in a few lines of Rust. MSRV 1.88.",[303,500,502,505],{"icon":501,"to":21},"i-lucide-terminal",[227,503,504],{"v-slot:title":219},"Run your first completion",[227,506,507,508,511],{"v-slot:description":219},"Create a small Rust binary, point it at a quantized GGUF model, and run a ",[263,509,510],{},"cargo run --release"," to see generated text.",[303,513,515,518],{"icon":514,"to":151},"i-lucide-book-open",[227,516,517],{"v-slot:title":219},"Tune for performance",[227,519,520],{"v-slot:description":219},"Set context size, batch size, GPU offload, and threads. Start with the smallest model that exercises your workload and tune one variable at a time.",[303,522,523,525],{"icon":216,"to":214},[227,524,213],{"v-slot:title":219},[227,526,527],{"v-slot:description":219},"Common failure modes for the server, Tauri plugin, and TypeScript client, with the exact flags and configurations that resolve them.",[529,530,531,534,550],"u-page-cta",{},[227,532,533],{"v-slot:title":219},"Ready to build with local inference?",[227,535,536,537,422,544,549],{"v-slot:description":219},"The guides explain recommended usage. The generated API references (",[538,539,543],"a",{"href":540,"rel":541},"https:\u002F\u002Fdocs.rs\u002Fllama-crab",[542],"nofollow","docs.rs\u002Fllama-crab",[538,545,548],{"href":546,"rel":547},"https:\u002F\u002Fdocs.rs\u002Fllama-crab-sys",[542],"docs.rs\u002Fllama-crab-sys",") are the source of truth for exact signatures.",[227,551,552,555],{"v-slot:links":219},[281,553,554],{"color":283,"size":284,"to":16,"trailing-icon":285},"Install llama-crab",[281,556,557],{"color":289,"size":284,"to":290,"icon":291,"variant":292},"View on GitHub",{"title":219,"searchDepth":559,"depth":559,"links":560},2,[],"md",{},true,"\u002F",{"title":566,"description":567},"llama-crab - Local GGUF inference for Rust, server, Tauri, and TypeScript","Run local GGUF models from your applications. Rust SDK, OpenAI-compatible HTTP server, Tauri plugin, and TypeScript client contracts.","index","afBzIP0qdr3m0BV-jw1PKNmyUwUVq09U1l_tEJ1wOIw",1781622517088]