Files
fil/skills/kreuzberg/references/other-bindings.md
Henrik Jess Nielsen b4c07d3693
All checks were successful
Deploy fil (kreuzberg) / deploy (push) Successful in 49s
Nomad changes
2026-06-01 23:40:55 +02:00

4.3 KiB

Language Bindings Reference

Kreuzberg provides native bindings for multiple programming languages, each with precompiled binaries for x86_64 and aarch64 on Linux and macOS. This reference covers installation and basic usage for each binding.

Go

Installation:

go get github.com/kreuzberg-dev/kreuzberg/packages/go/v5

Basic Extraction:

package main

import (
    "context"
    "fmt"
    "github.com/kreuzberg-dev/kreuzberg/packages/go/v5/kreuzberg"
)

func main() {
    ctx := context.Background()
    result, err := kreuzberg.ExtractFile(ctx, "document.pdf", nil)
    if err != nil {
        panic(err)
    }
    fmt.Println(result.Content)
}

See the Go binding documentation for complete API reference.

Ruby

Installation:

gem install kreuzberg

Or in your Gemfile:

gem 'kreuzberg'

Basic Extraction:

require 'kreuzberg'

result = Kreuzberg.extract_file_sync('document.pdf')
puts result.content

See the Ruby binding documentation for complete API reference.

Java

Installation: Add to your Maven pom.xml:

<dependency>
    <groupId>dev.kreuzberg</groupId>
    <artifactId>kreuzberg</artifactId>
    <version>4.2.x</version>
</dependency>

Basic Extraction:

import dev.kreuzberg.Kreuzberg;
import dev.kreuzberg.ExtractionResult;

public class Example {
    public static void main(String[] args) throws Exception {
        ExtractionResult result = Kreuzberg.extractFile("document.pdf");
        System.out.println(result.getContent());
    }
}

See the Java binding documentation for complete API reference.

C

Installation:

dotnet add package Kreuzberg

Basic Extraction:

using Kreuzberg;

var result = KreuzbergClient.ExtractFileSync("document.pdf");
Console.WriteLine(result.Content);

See the C# binding documentation for complete API reference.

PHP

Installation:

composer require kreuzberg/kreuzberg

Basic Extraction:

<?php
require 'vendor/autoload.php';

use Kreuzberg\Kreuzberg;

$kreuzberg = new Kreuzberg();
$result = $kreuzberg->extractFile('document.pdf');
echo $result->content;

See the PHP binding documentation for complete API reference.

Elixir

Installation: Add to your mix.exs dependencies:

def deps do
  [
    kreuzberg: "~> 4.2"
  ]
end

Basic Extraction:

{:ok, result} = Kreuzberg.extract_file("document.pdf")
IO.puts(result.content)

See the Elixir binding documentation for complete API reference.

WebAssembly (WASM)

Installation:

npm install @kreuzberg/wasm

Basic Extraction:

import { extractBytes } from "@kreuzberg/wasm";

const fileData = await fs.promises.readFile("document.pdf");
const result = await extractBytes(fileData, "application/pdf");
console.log(result.content);

Supports browsers, Deno, and Cloudflare Workers.

See the WASM binding documentation for complete API reference.

Docker

Installation: Pull the official image from GitHub Container Registry:

docker pull ghcr.io/kreuzberg-dev/kreuzberg

API Server Mode:

docker run -p 8000:8000 ghcr.io/kreuzberg-dev/kreuzberg serve --host 0.0.0.0

CLI Mode:

docker run -v $(pwd):/data ghcr.io/kreuzberg-dev/kreuzberg extract /data/document.pdf

MCP Server Mode:

docker run -i ghcr.io/kreuzberg-dev/kreuzberg mcp

Image sizes:

  • Core image: 1.0-1.3GB
  • Full image: ~1.0-1.3GB

See the Docker guide for deployment details.

Platform Support

All language bindings include precompiled binaries for x86_64 and aarch64 on Linux and macOS. Windows support varies by binding. Refer to the main README for platform compatibility matrix.