[package]
name = "kreuzberg-ffi"
version = "5.0.0-rc.3"
edition = "2021"
license = "Elastic-2.0"
description = "High-performance document intelligence library"
readme = false
keywords = ["document", "extraction", "ocr", "pdf", "text"]
categories = ["text-processing"]
repository = "https://github.com/kreuzberg-dev/kreuzberg"

# `serde_json`, `ahash`, and `tokio` are emitted unconditionally above so the
# manifest is stable across regens (and so the C FFI codegen can pull them in
# when an async / Result-typed function appears in the API surface), but for
# umbrella crates with no async fns and no JSON-marshalled return types they
# are genuinely unused. The conditional `async-trait` / `futures-util` deps
# are similarly flagged when the umbrella has trait-bridge / streaming adapters
# configured but no actual async-trait / async-stream callsite in the generated
# FFI shim.
[package.metadata.cargo-machete]
ignored = ["ahash", "serde_json", "tokio", "async-trait"]

[lib]
crate-type = ["cdylib", "staticlib", "rlib"]

[features]
default = []

[dependencies]
ahash = "0.8"
async-trait = "0.1"
serde_json = "1"
tokio = { version = "1", features = ["full"] }

[target.'cfg(not(all(target_os = "android", target_arch = "x86_64")))'.dependencies]
kreuzberg = { path = "../kreuzberg", version = "5.0.0-rc.3", features = ["full", "pdf", "ocr", "paddle-ocr", "paddle-ocr-types", "layout-detection", "layout-types", "embeddings", "embedding-presets", "chunking", "keywords-yake", "keywords-rake", "language-detection", "html", "tree-sitter", "office", "email", "archives", "stopwords", "auto-rotate", "auto-rotate-types", "tokio-runtime", "api", "mcp", "liter-llm", "quality"] }

[target.'cfg(all(target_os = "android", target_arch = "x86_64"))'.dependencies]
kreuzberg = { path = "../kreuzberg", version = "5.0.0-rc.3", features = ["android-target"] }


[build-dependencies]
cbindgen = "0.29"

[dev-dependencies]
tempfile = "3"
