← all repositories
xberg-io/xberg

Document extraction that speaks more languages than most developers

Kreuzberg wraps a Rust document engine in native bindings for more than a dozen languages so you can extract text and metadata from 90+ formats without switching stacks.

9.2k stars Rust Data ToolingRAG · Search
xberg
Velocity · 7d
+12
★ / day
Trend
cooling
star history

What it does Kreuzberg extracts text, metadata, and structured data from more than 90 file formats—PDFs, Office documents, images, archives, and code—through a single Rust core. It exposes that engine through native bindings for more than a dozen languages, letting you call it from Python, TypeScript, Go, Java, Zig, Elixir, and others without leaving your runtime. The project ships as a library, CLI tool, REST API server, or MCP server.

The interesting bit Instead of treating document parsing as a language-specific chore, Kreuzberg bundles traditional extraction with code intelligence: it uses tree-sitter to pull functions, classes, and symbols from 300+ programming languages, then serializes results to a custom TOON wire format that claims 30–50% fewer tokens than JSON for LLM pipelines. It also passes HTML directly into Markdown conversion rather than forcing lossy intermediate round-trips.

Key highlights

  • Native bindings for more than a dozen languages and runtimes, with precompiled binaries for x86_64 and aarch64 on Linux and macOS, plus Windows for most targets.
  • OCR via Tesseract (including a WASM build for browsers), PaddleOCR, EasyOCR (Python only), and optional VLM OCR through 143 vision-model providers including local engines like Ollama.
  • LLM integrations for structured JSON extraction with schema constraints and embeddings through 143 providers, powered by the sister liter-llm project.
  • Plugin architecture for custom OCR backends, validators, post-processors, and renderers.
  • GFM-quality Markdown output via Comrak, with proper table nodes, fenced code blocks, and bracket escaping.

Caveats

  • WASM builds exclude ORT-dependent features such as PaddleOCR, layout detection, embeddings, and auto-rotate, and cannot run server modes.
  • Precompiled macOS binaries are Apple Silicon only; Intel Macs are absent from the platform matrix.
  • The Elastic-2.0 license is source-available but not OSI-approved, which may complicate commercial redistribution.

Verdict Teams building RAG pipelines or document-processing microservices in polyglot environments should look here; developers who only need occasional PDF text extraction in a single language will find it overbuilt.

Frequently asked

What is xberg-io/xberg?
Kreuzberg wraps a Rust document engine in native bindings for more than a dozen languages so you can extract text and metadata from 90+ formats without switching stacks.
Is xberg open source?
Yes — xberg-io/xberg is open source, released under the MIT license.
What language is xberg written in?
xberg-io/xberg is primarily written in Rust.
How popular is xberg?
xberg-io/xberg has 9.2k stars on GitHub and is currently cooling off.
Where can I find xberg?
xberg-io/xberg is on GitHub at https://github.com/xberg-io/xberg.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.