¿Qué es Xberg (formerly Kreuzberg)?
Xberg es el Kreuzberg rebautizado. El proyecto reinició su numeración de versiones en la v1 con el nuevo nombre, el antiguo repositorio kreuzberg-dev/kreuzberg redirige ahora a xberg-io/xberg y un repositorio aparte, kreuzberg-lts, mantiene la línea v4 con soporte a largo plazo. Según el README, la mayoría de los proyectos que dependen de él siguen declarando la dependencia como kreuzberg.
Es un núcleo en Rust que lee 107 formatos de documento en 141 extensiones de archivo (PDF, Office, correo electrónico incluido PST, libros electrónicos, LaTeX y Typst, archivos comprimidos, imágenes) y devuelve texto plano, Markdown, Djot, HTML, un árbol JSON o DocTags compatibles con Docling. El OCR es intercambiable: la documentación enumera ocho backends, con Tesseract como predeterminado, PaddleOCR sobre ONNX Runtime, un motor para CPU llamado Sceptre, ports en Candle de GLM-OCR, TrOCR, DeepSeek-OCR y PaddleOCR-VL, y modelos de visión alojados a través de su propio cliente liter-llm. Por encima hay modelos de ML de maquetación y tablas, transcripción con Whisper, análisis de código con tree-sitter para 371 lenguajes, troceado, embeddings y extracción estructurada guiada por LLM.
Los bindings cubren Python, Node.js, Go, Java, C#, Ruby, PHP, Elixir, Dart, Swift, Kotlin, Zig, WebAssembly y C. El repositorio tiene unas 9.400 estrellas, licencia MIT y 98 versiones en GitHub; la v1.3.10 salió el 13 de octubre de 2026. La empresa que lo respalda, Kreuzberg, Inc., vende una composición gestionada de las mismas bibliotecas mediante un programa de design partners solo por invitación.
¿Merece la pena Xberg (formerly Kreuzberg)?
Xberg es la opción más sólida cuando el problema es la amplitud: un solo motor en Rust que abre un buzón PST, un archivo HWP coreano, un 7z anidado y un PDF escaneado, y que se puede llamar desde 15 lenguajes. Docling y Marker son bibliotecas de Python; Xberg distribuye paquetes nativos para Go, Java, C#, PHP, Elixir y el resto, lo que importa a los equipos que no ejecutan Python en producción.
El OCR es una elección de backend, no un modelo fijo. Tesseract es el predeterminado y necesita un paquete del sistema más los datos de idioma; PaddleOCR se ejecuta a través de ONNX Runtime; los cuatro backends de Candle (GLM-OCR, TrOCR, DeepSeek-OCR, PaddleOCR-VL) vienen compilados en los paquetes publicados, pero según la guía de OCR descargan entre unos 250MB y 4GB de pesos en el primer uso. Las cadenas de respaldo permiten que un motor barato lo intente primero y que un modelo de visión se encargue de las páginas en las que falla.
Las cifras de rendimiento son del fabricante. Su página de benchmarks compara Xberg con Docling, Unstructured, Tika, MarkItDown, PyMuPDF4LLM, LiteParse y MinerU en 60 documentos y 821 extracciones con su propio banco de pruebas abierto, y presenta a Xberg como el más rápido y el más preciso. El corpus es pequeño y lo eligieron los mantenedores; toma la tabla como un motivo para probar con tus propios documentos, no como un veredicto.
El historial de seguridad hay que leerlo antes de exponer el servidor. Un aviso de gravedad alta publicado el 6 de octubre de 2026 mostró que POST /extract, que no tiene autenticación, permitía a quien llamara desactivar el bloqueo de direcciones privadas del crawler y leer URL internas; las versiones hasta la 1.3.3 están afectadas. La documentación de la API además deja CORS abierto a cualquier origen por defecto y acepta cuerpos de petición de 100MB, así que el servidor REST debe ir detrás de tu propio gateway. El cambio de nombre añade trabajo: los nombres de paquetes, los imports y las URL de la documentación cambiaron todos entre la v4 y la v1.
Dónde se gana su sitio
Un ingeniero de backend en una startup de e-discovery basada en Go
Extraer texto y adjuntos de buzones PST, archivos de Office y PDF escaneados en un solo servicio
Importa el paquete de Go y llama a extract en cada archivo subido, con Tesseract para los escaneos y un backend de Candle para las páginas en las que Tesseract da poca confianza. No hay un sidecar de Python que operar; el coste es el tiempo de CPU y un servidor parcheado y tras un cortafuegos.
Un equipo de plataforma en una consultora de 300 personas que construye un RAG interno
Ingerir exportaciones de SharePoint y carpetas archivadas de clientes sin escribir un conversor por formato
Ejecuta la imagen de Docker en modo API detrás de un proxy que autentique, apunta a ella el trabajo de ingesta y conserva la salida en Markdown y en fragmentos. La biblioteca es gratuita; el trabajo está en fijar una versión posterior a la 1.3.3 y configurar CORS y los límites del cuerpo de las peticiones.
Un desarrollador que usa Claude Code o Cursor en un código con muchos documentos
Permitir que el agente lea los PDF, hojas de cálculo y presentaciones del repositorio
Instala la CLI y registra xberg mcp por stdio; el servidor expone nueve herramientas, entre ellas extract y extract_batch. Local y gratuito, aunque un backend de visión configurado con un modelo alojado envía las imágenes de las páginas a ese proveedor.
Antes de decidirte
- Puesta en marcha
- pip install xberg, npm install @xberg-io/xberg, cargo add xberg, brew install xberg-io/tap/xberg o docker pull ghcr.io/xberg-io/xberg; Tesseract necesita un paquete del sistema aparte, y los pesos de OCR de Candle se descargan en el primer uso.
- Integraciones
- Bindings para 15 lenguajes, una CLI de 14 comandos, un servidor REST con un esquema OpenAPI 3.1, un servidor MCP con nueve herramientas por stdio o HTTP, un Helm chart, plugins para agentes, y es una dependencia de las integraciones principales de Haystack, sobre todo con el nombre Kreuzberg.
- Datos y privacidad
- Se ejecuta en local en CPU por defecto; los embeddings alojados, la extracción con LLM y el OCR con VLM envían contenido al proveedor que configures. Licencia MIT. Un aviso publicado de gravedad alta (SSRF sin autenticación en POST /extract, versiones hasta la 1.3.3).
- Coste a escala
- La biblioteca es gratuita y pensada primero para CPU, así que la factura son las instancias de workers más los tokens de modelos alojados para OCR con VLM o extracción estructurada. Los precios de Pro y Enterprise gestionados solo se comunican a los design partners aceptados.
- Límites
- Sin autenticación integrada en el servidor de la API y CORS abierto por defecto; límite de petición predeterminado de 100MB; unas 33 issues y pull requests abiertas; las funciones opcionales pesadas (modelos de maquetación, transcripción, rastreo de URL) son feature flags de Cargo en las compilaciones desde el código fuente.
Lo bueno
- 107 formatos, entre ellos PST, HWP, Typst y archivos comprimidos anidados
- Bindings nativos para 15 lenguajes, más CLI, REST y MCP
- Ocho backends de OCR intercambiables con cadenas de respaldo
- Licencia MIT y 98 versiones en GitHub
Lo malo
- API REST sin autenticación; un SSRF de gravedad alta corregido después de la 1.3.3
- Los benchmarks son del fabricante, sobre un corpus de 60 documentos
- Rebautizado desde Kreuzberg con una nueva línea de versiones v1
- Los backends de OCR por visión descargan hasta unos 4GB de pesos
Ideal para
Equipos fuera de Python que necesitan un único parser integrable para una gran variedad de tipos de archivo, con un OCR que puedan cambiar.