llama-runner 1.1.1

A straightforward Rust library for running llama.cpp models locally on device
Documentation
pub mod error;
#[cfg(feature = "mcp")]
pub mod mcp;
mod runner;
pub mod sample;
pub mod template;

#[cfg(feature = "mcp")]
pub use minijinja;
pub use runner::*;

#[cfg(test)]
mod tests {
    use super::*;

    #[tokio::test]
    async fn test_lm() {
        let runner = Gemma3TextRunner::default().await.unwrap();
        let answer = runner
            .get_lm_response(TextLmRequest {
                messages: vec![(MessageRole::User, "What is the capital of France?")],
                ..Default::default()
            })
            .unwrap();
        assert!(answer.contains("Paris"));
    }

    #[tokio::test]
    async fn test_vlm() {
        let runner = Gemma3VisionRunner::default().await.unwrap();
        let eiffel_tower_im =
            image::load_from_memory(include_bytes!("../assets/eiffel-tower.jpg")).unwrap();
        let answer = runner
            .get_vlm_response(VisionLmRequest {
                messages: vec![
                    (
                        MessageRole::User,
                        ImageOrText::Text("Which city is this building in?"),
                    ),
                    (MessageRole::User, ImageOrText::Image(&eiffel_tower_im)),
                ],
                ..Default::default()
            })
            .unwrap();
        assert!(answer.contains("Paris"));
    }
}