Comparison · Last reviewed
llama.cpp is the MIT-licensed reference engine for GGUF, with the widest hardware support and, in our own measurements, faster generation than llamay. llamay is a separate engine written from scratch in Go that reads the same files — it does not use llama.cpp's code. Choose llama.cpp for speed, every backend and every new model first. Choose llamay for one binary that serves OpenAI, Anthropic and Ollama APIs, reads Ollama's store, and treats a context as an object you fork, snapshot and move.
| llama.cpp (llama-server) | llamay | |
|---|---|---|
| Licence | MIT, open source — LICENSE | Proprietary, free to download and run — pricing |
| Backends | CPU, Metal, CUDA, HIP, Vulkan, SYCL, OpenCL, WebGPU, MUSA, CANN and more — README | CPU (hand-written NEON and AVX), Metal, CUDA, Vulkan — backends |
| Install | Install scripts, Docker, prebuilt binaries, or build from source — README | One static binary from an install script, package or app — install |
| Server APIs | OpenAI-compatible chat, completions, responses and embeddings, and an Anthropic-compatible /v1/messages — llama-server README | OpenAI, Anthropic and Ollama APIs — HTTP API |
| Default port | 9931 in the current README — llama-server README | 11435 |
| Web UI | Built in, on by default — llama-server README | Studio at /studio — the apps |
| Constrained output | GBNF grammars and JSON Schema — grammars | GBNF grammars, and JSON Schema enforced while sampling — structured output |
| Several models | Router mode with --models-dir — llama-server README | Serves every model in its store and Ollama's by name — serving |
| Reusing prompt state | Prompt caching on by default; --slot-save-path saves and restores a slot's KV cache to a file — llama-server README | Named contexts forked copy-on-write, snapshots that restore on another machine and check which weights made them — state engine |
| Speed | Faster. In llamay's own interleaved runs on the same file and machine, llama.cpp decodes faster on Metal and is faster at both prefill and decode on CUDA and Vulkan | Measure it yourself with llamay bench — throughput |
llamay verify (validation).| llama-server | llamay |
|---|---|
llama-server -m model.gguf | llamay serve -m model.gguf |
-c 8192 | Not needed: the context length is read from the file |
-ngl 99 | Not needed: the GPU is used when the build has one |
-np 4 | -concurrency 4, and -batch for continuous batching |
--grammar-file x.gbnf | -grammar-file x.gbnf |
--lora x.gguf | -lora name=x.gguf |
-ctk q8_0 -ctv q8_0 | -kv q8, or -kv vq8 for exact keys |
The full list is on Migrating.
No. llamay is its own engine, written from scratch in Go. It reads the same GGUF file format, and that is the whole relationship: llama.cpp releases and fixes do not reach llamay.
Yes, in llamay's own measurements on the same file and machine: llama.cpp decodes faster on Metal and is faster at prefill and decode on CUDA and Vulkan. Measure your own case with llamay bench.
Yes. llama-server's --slot-save-path lets a slot's KV cache be saved to a file and restored. llamay's contexts add copy-on-write forks and snapshots that restore on another machine and check which weights produced them.
Yes. The llama-server README lists an Anthropic-compatible /v1/messages endpoint; tool use there needs the --jinja flag.
No. llama.cpp is MIT-licensed. llamay is proprietary software from Kosa8 Labs, free to download and run.
Every statement above about another project is taken from that project's own documentation, repository or licence, read on 31 October 2026. Anything we could not confirm there is left out. If one of these has changed, write to [email protected] and we will correct the page.
Last reviewed .