Principle:Ggml org Llama cpp Public C API
| Knowledge Sources | |
|---|---|
| Domains | API, Core |
| Last Updated | 2026-02-15 00:00 GMT |
Overview
The Public C API is the principle of providing a stable, well-defined C interface for external applications to use llama.cpp inference capabilities.
Description
This principle covers the public-facing C API header that defines the contract between llama.cpp and external consumers. It includes all public functions for model loading, context creation, tokenization, decoding, sampling, and state management. The API also provides RAII (Resource Acquisition Is Initialization) C++ wrapper types for automatic resource management, and context header definitions that organize internal state structures.
Usage
Apply this principle when building applications that link against llama.cpp as a library, when creating language bindings for other programming languages, or when extending the public API with new functionality while maintaining backward compatibility.
Theoretical Basis
The C API design follows several principles: C linkage for maximum portability and binding compatibility across languages, opaque pointer types that hide implementation details, consistent naming conventions (llama_ prefix), and clear ownership semantics for resources. The RAII pointer wrappers provide C++ users with automatic cleanup of llama objects (models, contexts, samplers) through smart pointer patterns. The context header defines the internal structure that backs the opaque llama_context pointer, containing the model reference, KV cache, compute graph, and backend scheduler state.