Skip to main content

llama_cpp_bindings/
lib.rs

1//! Bindings to the llama.cpp library.
2//!
3//! As llama.cpp is a very fast moving target, this crate does not attempt to create a stable API
4//! with all the rust idioms. Instead it provided safe wrappers around nearly direct bindings to
5//! llama.cpp. This makes it easier to keep up with the changes in llama.cpp, but does mean that
6//! the API is not as nice as it could be.
7//!
8//! # Feature Flags
9//!
10//! - `cuda` enables CUDA gpu support.
11//! - `sampler` adds the [`context::sample::sampler`] struct for a more rusty way of sampling.
12
13pub mod context;
14pub mod error;
15pub mod gguf_context;
16pub mod gguf_context_error;
17pub mod gguf_type;
18pub mod llama_backend;
19pub mod llama_backend_device;
20pub mod llama_backend_numa_strategy;
21pub mod llama_batch;
22pub mod llama_utility_ggml_time_us;
23pub mod llama_utility_json_schema_to_grammar;
24pub mod llama_utility_llama_time_us;
25pub mod llama_utility_max_devices;
26pub mod llama_utility_mlock_supported;
27pub mod llama_utility_mmap_supported;
28pub mod llama_utility_status_is_ok;
29pub mod llama_utility_status_to_i32;
30#[cfg(feature = "llguidance")]
31pub mod llguidance_sampler;
32pub mod log;
33pub mod log_options;
34pub mod model;
35#[cfg(feature = "mtmd")]
36pub mod mtmd;
37pub mod openai;
38pub mod sampling;
39pub mod timing;
40pub mod token;
41pub mod token_type;
42
43pub use error::{
44    ApplyChatTemplateError, ChatParseError, ChatTemplateError, DecodeError, EmbeddingsError,
45    EncodeError, GrammarError, LlamaContextLoadError, LlamaCppError, LlamaLoraAdapterInitError,
46    LlamaLoraAdapterRemoveError, LlamaLoraAdapterSetError, LlamaModelLoadError, LogitsError,
47    MetaValError, ModelParamsError, NewLlamaChatMessageError, Result, SamplerAcceptError,
48    SamplingError, StringToTokenError, TokenSamplingError, TokenToStringError,
49};
50
51pub use llama_backend_device::{
52    LlamaBackendDevice, LlamaBackendDeviceType, list_llama_ggml_backend_devices,
53};
54
55pub use llama_utility_ggml_time_us::ggml_time_us;
56pub use llama_utility_json_schema_to_grammar::json_schema_to_grammar;
57pub use llama_utility_llama_time_us::llama_time_us;
58pub use llama_utility_max_devices::max_devices;
59pub use llama_utility_mlock_supported::mlock_supported;
60pub use llama_utility_mmap_supported::mmap_supported;
61pub use llama_utility_status_is_ok::status_is_ok;
62pub use llama_utility_status_to_i32::status_to_i32;
63
64pub use log::send_logs_to_tracing;
65pub use log_options::LogOptions;
66
67#[cfg(any(test, feature = "tests_that_use_llms"))]
68pub mod test_model;