# llama.cpp reaches 1.0 with breaking API changes

> The local model runtime removes older interfaces and adds serving options.

By BIGCHANGE.AI Editorial

Published: 2026-11-13T14:43:38.461Z
Updated: 2026-11-13T14:43:38.461Z
Canonical: https://bigchange.ai/blog/llama-cpp-1-0-api-and-server-changes

![Illustration of a laptop connected to a compact computer.](https://bigchange.ai/api/media/file/local-v3.png)
AI-generated illustration for BIG CHANGE.

The llama.cpp maintainers released version 1.0.0 on November 13, removing older programming interfaces from the library for running language models on local hardware.

## The big change

- Version 1.0 removes deprecated functions: calls that developers were previously advised to replace. Applications using them need changes before they can build against the new library.
- The expert-cache implementation offers a tuning script because moving work between processor and graphics hardware can help or hurt performance. Its example shows that a higher CPU share is not always faster.
- The server URL change distinguishes private media from proxy access. Operators can explicitly allow media on their local network, but the proxy no longer accepts local addresses.

## What developers need to change

The [release notes](https://github.com/ggml-org/llama.cpp/releases/tag/v1.0.0) list 35 deprecated functions, a warmup function and a defragmentation setting and flag among the removals. They also move the speculative-generation interface into the main header, rename a function, add FP8 key-value caches and extend text, speech and vision support. New options do not establish universal performance gains.

In the [October planning discussion](https://github.com/ggml-org/llama.cpp/discussions/30566), Georgi Gerganov explained that legacy interfaces had been retained partly to avoid disrupting dependent projects. Another participant described the resulting tradeoff: applications need to adapt if they want subsequent model support and fixes. That makes migration a maintenance decision, rather than merely a choice about a version label.

In November, Gerganov said future version changes would more strictly signal API or binary-interface incompatibility, with major releases potentially occurring more often. An API is the set of calls an application uses; binary compatibility concerns whether already-built components can work together. The statement explains the intended warning signal, not a guarantee that all future upgrades will work without adaptation.

## Why settings need workload testing

The [expert-cache change](https://github.com/ggml-org/llama.cpp/pull/30966), merged November 7, lets a configurable share of cache misses run on the CPU. In a mixture-of-experts model, different network components handle different inputs; where those components run affects data movement. The author says CPU read speed influences generation performance and supplies a tuning script.

Its documented example makes the tradeoff concrete. With 6,464 MiB of cache, increasing CPU share from zero to 0.95 raised generation from 24.2 to 47.6 tokens per second. With 19,392 MiB, the same change reduced it from 65.5 to 54.1. These are the author's particular test results, not a forecast for other computers or models. Testing the actual workload matters more than maximizing one setting.

The [server change](https://github.com/ggml-org/llama.cpp/pull/32115) also has an operational consequence. A media URL pointing to a file on local network storage now needs the explicit private-URL option. The CORS proxy, which forwards requests, permits public addresses only: there is no equivalent exception for reaching a local tool server. The two cases therefore need separate configuration decisions.

These restrictions address a route to internal network resources, not every possible service risk. Operators still need to review who can reach the server and which permissions it has. A successful build, a working model request and a securely configured deployment are different checks.

## Sources

- [Version 1.0.0 release](https://github.com/ggml-org/llama.cpp/releases/tag/v1.0.0) — Release changes.
- [Version planning discussion](https://github.com/ggml-org/llama.cpp/discussions/30566) — Maintainer versioning plans.
- [Expert cache change](https://github.com/ggml-org/llama.cpp/pull/30966) — CPU share and tuning.
- [Server URL change](https://github.com/ggml-org/llama.cpp/pull/32115) — Local-address controls.
