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.