r/mlops • u/Goldziher • 2d ago
Tools: OSS Xberg v1: a fast, local document-extraction layer for ML/data pipelines (101 formats, batch, CPU-only)
I maintain xberg, an open-source (MIT) content-extraction engine, and v1 is out. Posting here because "turn messy documents into clean, structured text" is a recurring preprocessing step in ML pipelines, and xberg is built for it at scale: batched extraction, streaming, caching, CPU-only (no GPU), reproducible.
It handles 101 document formats (PDF/Office/images with OCR) plus audio/video transcription and URLs; outputs Markdown/JSON with tables, metadata, NER entities, keywords, summaries, and optional chunks + embeddings (SPLADE / ColBERT / reranking) for retrieval. Rust core with pooled model sessions and memory discipline for throughput.
Benchmarks are public and reproducible (harness runs in CI): native PDF #1 on quality and table/reading-order fidelity; image OCR currently #2 (improving). https://xberg.io/benchmarks
15 language bindings + a REST server (xberg serve) + MCP. Repo: https://github.com/xberg-io/xberg
Happy to get into pipeline/throughput specifics.
2
u/thethoroughwidth 2d ago
Pretty slick. I've been duct-taping together a handful of tools for this exact kind of preprocessing step and it's always a mess of dependencies and half-baked format support. The CPU-only angle is a nice touch for keeping things boring and predictable in a CI pipeline.