Files
fil/.ai-rulez/context/crate-structure.md
Henrik Jess Nielsen b4c07d3693
All checks were successful
Deploy fil (kreuzberg) / deploy (push) Successful in 49s
Nomad changes
2026-06-01 23:40:55 +02:00

1.6 KiB

priority
priority
high

Crate Structure

Version source of truth: root Cargo.toml [workspace.package] version.

Workspace crates (crates/)

  • kreuzberg — core library: extraction engine, MIME detection, plugin system, OCR, chunking, embeddings, API/MCP server
  • kreuzberg-cli — CLI binary; thin wrapper over core with cli feature set
  • kreuzberg-ffi — C FFI layer (#[no_mangle] extern "C"); opaque handles, cbindgen headers; used by Go, Java, C# bindings
  • kreuzberg-node — NAPI-RS Node.js/TypeScript bindings
  • kreuzberg-py — PyO3 Python bindings
  • kreuzberg-php — ext-php-rs PHP bindings
  • kreuzberg-wasm — wasm-bindgen WASM bindings; uses wasm-target feature set
  • kreuzberg-paddle-ocr — PaddleOCR via ONNX Runtime; not available on WASM or Windows
  • kreuzberg-tesseract — Rust bindings for Tesseract OCR

Out-of-workspace bindings (packages/)

  • packages/python/ — PyPI (maturin + PyO3)
  • packages/typescript/ — npm type declarations
  • packages/ruby/ — RubyGems (Magnus); native ext compiled by rake
  • packages/php/ — Composer (ext-php-rs)
  • packages/go/v5/ — Go module; cgo over kreuzberg-ffi
  • packages/java/ — Maven; Foreign Function & Memory API over kreuzberg-ffi
  • packages/csharp/ — NuGet; P/Invoke over kreuzberg-ffi
  • packages/elixir/ — Hex; Rustler NIF (workspace member at packages/elixir/native/kreuzberg_rustler)
  • packages/r/ — CRAN; extendr (excluded from workspace)

Tools (tools/)

  • tools/e2e-generator — reads JSON fixtures, generates runnable test suites per language into e2e/
  • tools/benchmark-harness — criterion-based benchmark runner