Skip to content

Kreuzberg

Document intelligence with a high-performance Rust core. Extract text, tables, and metadata from 97+ file formats — with optional OCR — from Python, TypeScript, Rust, Go, Java, C#, and more.

High performance

Rust core with native PDFium, SIMD optimizations, and full parallelism. Process thousands of documents per minute without a GPU.

97+ file formats

PDF, DOCX, XLSX, PPTX, images, HTML, XML, emails, archives, and academic formats — one API handles them all.

Multi-engine OCR

Tesseract and PaddleOCR work across all language bindings. EasyOCR is available for Python.

12 language bindings

Native bindings for Python, TypeScript, Rust, Go, Java, C#, Ruby, PHP, Elixir, R, C, and WebAssembly.

Code intelligence

Extract functions, classes, imports, symbols, and docstrings from 248 programming languages, with semantic chunking.

Flexible deployment

Use as a library, CLI tool, REST API server, MCP server, or Docker container. Pick what fits your stack.

See all features →

Precompiled binaries for Linux (x86_64 & aarch64), macOS (Apple Silicon), and Windows (x64).

Language Package Docs
Python pip install kreuzberg API Reference
TypeScript (Native) npm install @kreuzberg/node API Reference
TypeScript (WASM) npm install @kreuzberg/wasm API Reference
Rust cargo add kreuzberg API Reference
Go go get .../kreuzberg-lts/v4 API Reference
Java Maven Central dev.kreuzberg:kreuzberg API Reference
C# dotnet add package Kreuzberg API Reference
Ruby gem install kreuzberg API Reference
PHP composer require kreuzberg/kreuzberg API Reference
Elixir {:kreuzberg, "~> 4.0"} API Reference
R r-universe kreuzberg API Reference
C (FFI) Shared library + header API Reference
CLI brew install kreuzberg-dev/tap/kreuzberg CLI Guide
Docker ghcr.io/kreuzberg-dev/kreuzberg-full Docker Guide
main.py
from kreuzberg import extract_file_sync
result = extract_file_sync("document.pdf")
print(result.content)