[package] name = "kebab-embed-ollama" version = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } license = { workspace = true } repository = { workspace = true } description = "Ollama HTTP adapter implementing kebab_core::Embedder (POST /api/embed, L2-normalized, batched + fail-soft)" [dependencies] kebab-core = { path = "../kebab-core" } kebab-config = { path = "../kebab-config" } # `default-features = false` drops native-tls (system OpenSSL); we pin rustls. # reqwest 0.12's `blocking` feature wraps a private current-thread tokio # runtime — this crate exposes NO async surface (no `async`/`await`/`tokio::*` # symbols), matching the kebab-llm-local invariant. reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "rustls-tls"] } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } tracing = { workspace = true } anyhow = { workspace = true } [dev-dependencies] # wiremock hosts the mock /api/embed server (needs a tokio runtime); tokio is # also pulled transitively at runtime by reqwest's `blocking` feature. wiremock = { workspace = true } tokio = { workspace = true, features = ["macros", "rt"] } [lints] workspace = true