Sobre o projeto

Xberg é um motor de inteligência documental poliglota construído em torno de um núcleo Rust. Aponte-o para um PDF, imagem digitalizada, planilha, arquivo de áudio, URL, arquivo compactado ou árvore de código-fonte e ele retorna texto limpo, tabelas, metadados e dados estruturados. Detecção de formato, leitura, OCR e extração são tratadas por um único motor, em vez de montadas a partir de bibliotecas separadas. Cobertura e capacidades - Formatos: o README afirma 107 formatos em 141 extensões de arquivo e 56 aliases MIME, abrangendo documentos Office (Word, Excel, PowerPoint, OpenDocument, Apple iWork, Hangul HWP/HWPX), PDF, e-books (EPUB, FB2), bancos de dados (DBF, SQLite, GeoPackage), imagens raster e avançadas (PNG, JPEG, TIFF, JPEG2000, JBIG2, HEIC/AVIF, SVG), faixas de áudio e vídeo (MP3, M4A, WAV, WebM, faixas de áudio MP4/MPEG), dados web e estruturados (HTML, XML, JSON, YAML, TOML, CSV), variantes de texto e Markdown (AsciiDoc, CommonMark, MyST, Quarto, Djot, MDX, DocTags, reStructuredText, Org), e-mail (EML, MSG, PST), arquivos compactados (ZIP, TAR, GZ, 7z) e formatos acadêmicos (BibTeX, RIS, EndNote, LaTeX, Typst, JATS, notebooks Jupyter, DocBook, OPML). - Inteligência de código: estrutura, imports, símbolos e docstrings de 371 linguagens de programação via tree-sitter, com segmentação sensível à sintaxe destinada a pipelines RAG. - OCR: backends Tesseract, PaddleOCR, Candle ou VLM, com cadeias de fallback, pontuações de confiança e detecção automática de idioma. - Layout e tabelas: modelos de layout ML (PP-DocLayout-V3, RT-DETR) e modelos de estrutura de tabelas (TATR, SLANet) reconstroem a ordem de leitura e as grades de células. - Enriquecimento: NER, extração de palavras-chave (YAKE/RAKE), sumarização, tradução, redação de PII, classificação de páginas, detecção de QR, detecção de idioma e um formato de redução de tokens TOON. - Embeddings e busca: embeddings ONNX locais ou embeddings hospedados por provedor, recuperação esparsa e de interação tardia, e reordenação por cross-encoder. - Extração estruturada: JSON orientado por esquema a partir de documentos usando motores locais (Ollama, LM Studio, vLLM) ou provedores LLM hospedados. - Saída: texto simples, Markdown, Djot, HTML, árvore JSON ou Docling DocTags, além de renderizadores personalizados. Interfaces e implantação Quinze bindings são listados: Rust, Python, Node.js, WebAssembly, Java, Go, C#, PHP, Ruby, Elixir, Dart, Kotlin (Android), Swift, Zig e C FFI. As opções de implantação incluem uma API de biblioteca, uma CLI com 14 comandos (extract, batch, detect, formats, version, cache, tree-sitter, doctor, serve, mcp, api, embed, chunk, completions), um servidor de API REST via `xberg serve`, um servidor MCP com 9 ferramentas, 3 prompts e 4 recursos para Claude Desktop, Cursor e clientes similares, além de empacotamento Docker e Helm. O README observa operação somente em CPU por padrão, cache por hash de conteúdo, processamento em lote paralelo e timeouts por arquivo. Notas Algumas capacidades são controladas por feature flags do Cargo (url-ingestion, transcription, reranker, layout/ORT); pacotes pré-compilados e a imagem Docker incluem um conjunto comum. O projeto se descreve como sucessor do Kreuzberg e é licenciado sob MIT. Alegações de desempenho e benchmarks no README são do próprio projeto e não são verificadas independentemente aqui.