{"slug": "llama-cpp-v1-0-0-stable-api-semver-and-what-breaks", "title": "llama.cpp v1.0.0: Stable API, Semver, and What Breaks", "summary": "Llama.cpp tagged v1.0.0 on November 13, committing the C++ inference engine behind Ollama, LM Studio and GPT4All to semantic versioning for its public C API after 3.5 years without stable API guarantees. The release removes 36 C API symbols — including llama_n_embd, llama_n_ctx_train and llama_set_warmup — and changes the libllama soname from libllama.so.0 to libllama.so.1, so C API consumers must audit and recompile while command-line users can upgrade unchanged. v1.0.0 also adds OCP FP8 KV cache (f8_e4m3, via -ctk/-ctv), a host-memory MoE expert cache, three new model architectures (Kimi-K3.1-Pro, Ripple, xing4_0) and an OpenAI-compatible /v1/audio/speech endpoint.", "body_md": "llama.cpp, the C++ inference engine running underneath Ollama, LM Studio, GPT4All, and most of the local AI ecosystem, tagged [v1.0.0 on November 13](https://github.com/ggml-org/llama.cpp/releases) after 3.5 years of weekly churn and no stable API guarantees. The features matter less than the promise: semantic versioning now governs the public C API, and breaking changes arrive only with a MAJOR version bump. If you have ever had a llama.cpp update silently wreck your build on a Friday afternoon, that era is over.\n\n## The Semver Contract\n\nBoth libllama and libggml now follow explicit rules: a MAJOR bump signals a breaking change to the C API in `./include`, MINOR covers backward-compatible additions and new model support, PATCH is bug fixes only. That sounds obvious, but llama.cpp skipped this convention for three and a half years. The project moved so fast that semver would have felt like a straitjacket. Now the ecosystem is wide enough that unpredictable breaks are costing real engineering time downstream.\n\nThe practical upside: enterprise vendors and Linux distros can now package libllama like they package libssl or libcurl — with a formal expectation that the next soname change will be announced, not discovered at compile time.\n\n## What Breaks in v1.0.0\n\nThis release itself carries breaking changes — it is the final cleanup before the stability promise kicks in. Thirty-six C API symbols were removed. If your code calls any of them, it will not compile against v1.0.0. The most common ones developers will hit:\n\n- `llama_n_embd(model)` → use`llama_model_n_embd(model)`\n- `llama_n_ctx_train(model)` → use`llama_model_n_ctx_train(model)`\n- `llama_token_cls(vocab)` → use`llama_vocab_bos(vocab)`\n- `llama_set_warmup` → removed entirely, no replacement\n- `llama_set_embd_state_src` → renamed to`llama_set_ctx_state_src`\n- `--defrag-thold` CLI flag → gone\n\nThe libllama shared library also changed its soname from `libllama.so.0` to `libllama.so.1`. Any dynamically linked binary or package that pins the old soname needs updating before the upgrade lands. [ComputingForGeeks has a tested upgrade walkthrough](https://computingforgeeks.com/llama-cpp-1-0-whats-new/) if you want step-by-step guidance.\n\n## Who Needs to Act\n\nThe affected surface area depends on how you use llama.cpp. **Command-line users** running llama-server or llama-cli can upgrade on their normal schedule — no source changes needed. **C API consumers**, meaning anyone who links libllama directly in custom code, Ollama internals, or llama-server wrappers, need to audit their symbol usage against the removed list before upgrading. **Python binding users** (llama-cpp-python) should wait until the binding package tags a compatible release rather than upgrading the underlying library directly.\n\nThe practical migration checklist is short: search your codebase for the 36 removed symbols, swap in the current API equivalents, update any soname references, recompile, and run your tests. The [release notes on GitHub](https://github.com/ggml-org/llama.cpp/releases) list every removed symbol with its replacement.\n\n## New Capabilities in v1.0.0\n\nThe breaking changes get the attention, but v1.0.0 also ships useful additions. OCP FP8 KV cache (`f8_e4m3` type, controlled via `-ctk`/`-ctv` flags) reduces memory usage for long conversations. A new host-memory MoE expert cache with configurable CPU share lets mixture-of-experts models run on machines without massive VRAM — think running Kimi-K3.1-Pro locally without a data-center GPU. Three new model architectures land: Kimi-K3.1-Pro, Ripple, and xing4_0. The server also gains an OpenAI-compatible `/v1/audio/speech` endpoint and security fixes for CORS, DNS rebinding, and HF_TOKEN scoping.\n\n## What It Signals\n\nGeorgi Gerganov pushed the first commit to llama.cpp in March 2023 to run Meta’s leaked Llama model on a MacBook with no GPU and no dependencies. It was a weekend project. It became the runtime underneath tools with [over seven million combined active users](https://mlq.ai/news/llamacpp-reaches-version-10-and-promises-a-stable-api-for-local-ai-apps/). In February 2026, the team joined Hugging Face full-time. v1.0.0 is not a feature release — it is an infrastructure signal. The local AI stack is maturing past the “fun experiment” phase into something you can build a product on.\n\nThe next breaking change will announce itself. That is new.", "url": "https://wpnews.pro/news/llama-cpp-v1-0-0-stable-api-semver-and-what-breaks", "canonical_source": "https://byteiota.com/llama-cpp-v1-0-0-stable-api-semver-and-what-breaks/", "published_at": "2026-11-14 07:07:59+00:00", "updated_at": "2026-11-14 07:25:48.868979+00:00", "lang": "en", "topics": ["artificial-intelligence", "ai-infrastructure", "large-language-models", "developer-tools", "ai-tools"], "entities": ["llama.cpp", "ggml", "Georgi Gerganov", "Ollama", "LM Studio", "GPT4All", "llama-cpp-python", "Meta"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/llama-cpp-v1-0-0-stable-api-semver-and-what-breaks", "markdown": "https://wpnews.pro/news/llama-cpp-v1-0-0-stable-api-semver-and-what-breaks.md", "text": "https://wpnews.pro/news/llama-cpp-v1-0-0-stable-api-semver-and-what-breaks.txt", "jsonld": "https://wpnews.pro/news/llama-cpp-v1-0-0-stable-api-semver-and-what-breaks.jsonld"}}