Installation¶
Kreuzcrawl provides native bindings for 11 languages plus Docker and CLI distribution. Choose your platform below.
Language Bindings¶
Add to your Cargo.toml:
Optional feature flags:
| Feature | Description |
|---|---|
browser |
Headless Chrome via chromiumoxide |
ai |
LLM extraction via liter-llm |
tracing |
OpenTelemetry span recording |
interact |
Page interaction actions (requires browser) |
mcp |
Model Context Protocol server |
api |
REST API server via Axum |
warc |
WARC archive output |
Enable features as needed:
Rust version
Kreuzcrawl requires Rust 1.91+ (edition 2024).
Requires Python 3.10+. Install from PyPI:
Or with uv:
The package ships pre-built wheels with the Rust core compiled via maturin. No Rust toolchain needed.
Install the @kreuzberg/kreuzcrawl package:
Or with pnpm:
The package includes pre-built native binaries via NAPI-RS and ships with TypeScript type definitions (.d.ts).
Requires Ruby 3.2+. Add to your Gemfile:
Then:
Or install directly:
The gem includes a native extension built with Magnus and rb_sys.
Requires Go 1.21+. The Go bindings use cgo with the C FFI layer:
Build requirement
A C compiler is required. The kreuzcrawl shared library must be available at link time.
Requires Java 21+ (Panama FFM). Add the Maven dependency:
<dependency>
<groupId>dev.kreuzberg</groupId>
<artifactId>kreuzcrawl</artifactId>
<version>0.1.0</version>
</dependency>
The Java bindings use the Panama Foreign Function & Memory API to call the C FFI layer.
Requires .NET 8+. Add the NuGet package:
Or in your .csproj:
The C# bindings use P/Invoke to call the C FFI layer.
Requires PHP 8.2+. Install the extension via Composer:
The PHP bindings are built with ext-php-rs and load as a native PHP extension.
Requires Elixir 1.14+ with OTP 25+. Add to your mix.exs:
Then:
The Elixir bindings use Rustler NIFs.
For browser or Node.js environments via wasm-bindgen:
Limitations
The WASM build runs in a single-threaded environment. Features requiring std::thread or synchronous I/O are not available.
Docker¶
Pull the official image:
Run the CLI:
Run with a volume for WARC output:
docker run --rm -v $(pwd)/output:/output \
ghcr.io/kreuzberg-dev/kreuzcrawl:latest \
crawl https://example.com --depth 2 --warc-output /output/archive.warc
CLI¶
Homebrew (macOS / Linux)¶
Cargo¶
With optional features:
Verify the installation: