xberg logo

xberg

xberg-io/xberg

A polyglot document intelligence framework with a Rust core

GraphCanon updated 3d · GitHub synced 3d · 30 views this month

9.1k stars562 forksLast push 5d Rust MIT

Decision brief

xberg is a polyglot document intelligence framework with a Rust core, offering text and metadata extraction across various formats including PDFs, Office documents, and more than 97 other file types. It supports multiple

Good fit when

  • You need to extract not only text but also structured information such as images, tables from over 100 file formats
  • Your application requires integration across multiple languages including Rust, Python, Ruby, Java, Go, PHP, Elixir, C#, R, C, and TypeScript through various deployment modes (CLI, REST API server, or

Avoid when

  • You need a solution with lower resource requirements as xberg supports extensive formats and functionalities which might be overkill for simpler tasks
  • Your primary use case involves real-time document processing where latency is critical. Given the breadth of its capabilities, xberg might introduce higher processing overhead compared to more focused
Pricing:
freemium - Open-source MIT license; enterprise support is available.
Requirements:
xberg offers flexible deployment modes including CLI, REST API server, Docker container, and MCP integration

Observed Jul 10, 2026 · Source: enrich:decision_facts

Verify the decision

Maintenance and security

Full trust report
Maintenance
Very active (1d since push)
As of 3d
Provenance
Not a fork · Organization account
As of 3d
Security (OSV)
1 medium (1 medium)
As of 1mo

Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.

Install

cargo add xberg
crates.io

How it fits your stack(8)

Typed graph edges - alternatives, integrations, successors, and dependencies. Ranked by relationship type, not raw GitHub stars.

Relationship graph

Optional deeper exploration of typed edges and category neighbours.

Similar tools

Same-category neighbours not already linked as typed edges.

Evidence and technical details

Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.

Overview

Extracts text, metadata, images, and structured information from various formats including PDFs, Office documents, and images. Available in multiple languages and deployment modes (CLI, REST API, MCP server).

Capability facts

MCP server
No MCP server detected

Source: repo_scan · Aug 18, 2026

Languages
rust, javascript, typescript, python

Source: github.language+package.json+pyproject.toml · Aug 18, 2026

Categories

Graph entities

Compatibility

Sourced claims from the README excerpt - not unsourced marketing copy.

stdio transportstdio

Source: README excerpt (regex_v1, Aug 18, 2026)

xberg mcp --transport stdio
Source link
Works with Claude DesktopClaude Desktop

Source: README excerpt (regex_v1, Aug 18, 2026)

Add to Claude Desktop or Cursor:
Source link
Works with CursorCursor

Source: README excerpt (regex_v1, Aug 18, 2026)

Add to Claude Desktop or Cursor:
Source link

Tags

README

CLI & Deployment

CLI Tool
brew install xberg-io/tap/xberg

12 commands: extract, batch, detect, formats, version, cache (stats/clear/manifest/warm), serve, mcp, api, embed, chunk, completions.

See CLI usage guide for detailed documentation.

Docker
docker pull ghcr.io/xberg-io/xberg:latest

Run in API, CLI, or MCP modes. See Docker guide for examples.

REST API Server
xberg serve --host 0.0.0.0 --port 8000

One POST endpoint handles all formats. Returns JSON or Markdown. Stream large files. See API server guide.

MCP Server
xberg mcp --transport stdio

9 tools (extract, extract_batch, detect_mime_type, cache_stats, list_formats, cache_clear, get_version, cache_manifest, cache_warm). 3 prompts (extract_document, extract_with_ocr, semantic_search). 4 resources (formats, models, OCR languages, embedding presets).

Add to Claude Desktop or Cursor:

{
  "mcpServers": {
    "xberg": { "command": "xberg", "args": ["mcp"] }
  }
}

See MCP integration guide.


Quick Start

Extract text from a document:

use xberg::{extract, ExtractInput, ExtractionConfig};

#[tokio::main]
async fn main() -> xberg::Result<()> {
    let config = ExtractionConfig::default();
    let output = extract(
        ExtractInput::from_uri("document.pdf"),
        &config
    ).await?;

    println!("{}", output.results[0].content);
    Ok(())
}

Common use cases — see Quick start guide for language-specific examples, OCR, batch processing, and API configuration.



Deployment Modes

ModeCommandTransportUse case
Libraryxberg::extract()Async functionsEmbed in your application
CLIxberg extract document.pdf12 commandsScripts, batch jobs, CI/CD
REST APIxberg serveHTTP POSTMicroservice, serverless deployment
MCP Serverxberg mcpstdio or HTTPClaude, Cursor, IDE agents
Dockerdocker run ghcr.io/xberg-io/xbergAll modesContainer deployment

License

MIT License (MIT) — see LICENSE for details.

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.