Changelog¶
0.1.1¶
Fixes¶
- WASM: Added
getrandomwithwasm_jsfeature for wasm32 target compatibility - Java: Downgraded Maven compiler and source plugins from beta to stable (4.0.0-beta → 3.x)
- Elixir: NIF scaffold lib.path +
MIX_ENV=prodfor Hex publish (from v0.1.0) - CI: Fixed PEP 440 version conversion for stable releases (0.1.0 no longer becomes 0.10)
0.1.0¶
First stable release. High-performance web crawling engine with bindings for 11 languages.
Highlights¶
- Rust core with async Tokio runtime, configurable crawl depth/concurrency/rate limiting
- REST API server (Firecrawl v1-compatible) with OpenAPI 3.1 spec
- MCP (Model Context Protocol) server for AI agent integration
- Docker image (Alpine, multi-arch amd64/arm64)
- CLI with Homebrew tap (
brew install kreuzberg-dev/tap/kreuzcrawl)
Language Bindings¶
Python (PyPI), Node.js (npm), Ruby (RubyGems), Go (pkg.go.dev), Java (Maven Central), C# (NuGet), PHP (Packagist), Elixir (Hex.pm), WebAssembly (npm), C FFI (GitHub Releases), Rust (crates.io)
Changes Since rc.10¶
- Fixed Elixir Hex publish (NIF lib.path + MIX_ENV=prod)
- Fixed version.rb sync regex (pre-release suffix matching)
- Fixed Ruby native scaffold missing lib.path
- Clean prek run (all hooks pass)
- Idempotent
alef verifyvia blake3 output content hashing
0.1.0-rc.10¶
Features¶
- Go: Added FFI download pattern —
go generatedownloads prebuilt libraries from GitHub releases, enabling standalonego getwithout local C build - API: Added schemathesis property-based contract tests (12 tests covering all endpoints)
- CLI: Added Homebrew installation instructions (
brew install kreuzberg-dev/tap/kreuzcrawl)
Fixes¶
- Go: Fixed non-opaque struct methods using
r.ptr— now marshals to JSON via_from_jsonFFI - Go e2e: Pass
niltoCreateEnginewhen no config specified - Python stubs: Removed docstrings from
.pyifiles (ruff PYI021 compliance) - WASM e2e: Quote hyphenated keys in object literals, use
WasmCrawlConfigclass construction - Brew e2e: Fixed jq
| lengthpipe syntax (was.length), skip output capture for all-skipped assertions - Python e2e: Wrap long
CrawlConfiglines for E501 compliance - Rust e2e: Removed
[workspace]from generated Cargo.toml (conflicts with parent workspace) - Elixir: Fixed long line formatting in
native.exscaffold - PHP: Unified Packagist package name to
kreuzberg-dev/kreuzcrawl - CI: Removed prepare job gate that skipped release events
- Docs: Fixed stale version references in Java/Elixir READMEs and installation guide
- Pre-commit: Replaced local sync-versions hook with
alef-verify+alef-sync-versions
0.1.0-rc.9¶
Fixes¶
- WASM: Remove wasm-pack-generated
.gitignorefrompkg/subdirectories after build — npm respects nested.gitignoreand was excluding compiled WASM artifacts even withfilesfield set
0.1.0-rc.8¶
Fixes¶
- WASM: Removed
pkg/from.gitignoreso npm publish includes compiled WASM artifacts - Ruby: Fixed gem version format in test_apps (
0.1.0.pre.rc.3instead of0.1.0.rc3)
0.1.0-rc.6¶
Fixes¶
- WASM: Fixed npm package publishing — added
files,main,module,typesfields to package.json so compiled artifacts are included instead of raw Rust source - WASM e2e: Added
tsconfig.jsonto generated test_app (prevents Vite from walking to root tsconfig) - Elixir: Removed non-existent
Cargo.lockfrom mix.exs files list (NIF crate uses workspace lockfile) - Rust toolchain: Switched from pinned 1.91 to
stable(transitive depconstant_time_eq0.4.3 requires 1.95)
Features¶
- Docker: Added
publish-docker.yamlworkflow with Alpine CLI image, multi-arch builds (amd64/arm64)
0.1.0-rc.5¶
Fixes¶
- Version sync: All workspace member Cargo.toml files now synced (binding crates were stuck at rc.2)
- Ruby: Fixed Duration conversion in validate method (
.map()onu64) - Browser: Re-wired
browser_fetchinto engine scrape pipeline (lost during Tower refactor) - Brew e2e: Implemented 5 missing assertion types (greater_than_or_equal, contains_all, is_empty, less_than, not_contains)
0.1.0-rc.4¶
Fixes¶
- Node: Added missing
serdedependency to Node binding crate — fixes compilation failure - Elixir: Added missing
serdedependency to NIF crate + serde derives on enums — fixes compilation failure - Ruby: Fixed conflicting
Defaultimplementations — derive vs manual impl no longer collide - Ruby: Fixed enum conversion codegen — enum fields now use pattern matching instead of dot access
- Ruby: Fixed
Box<T>deref in enum tuple variant conversion (CrawlEvent::Page) - Version sync: Added root
package.jsonandkreuzcrawl-node/package.jsonto sync-versions extra_paths
0.1.0-rc.3¶
Fixes¶
- Go: Fixed module path to
github.com/kreuzberg-dev/kreuzcrawl/packages/gofor proper Go module resolution - Java: Added extract-from-JAR native library loading — published Maven artifact now works standalone without manual
java.library.pathconfiguration - Elixir: Switched to
RustlerPrecompiledwith GitHub release URLs for precompiled NIF binaries - PHP: Fixed
createEngineFromJson()— now usesCrawlConfigobject construction matching the binding API - PHP: Fixed risky test warning for fixtures with all skipped assertions
- NuGet: Use
PackageLicenseFileinstead ofPackageLicenseExpression(Elastic-2.0 not OSI-approved) - Docker (musl): Source cargo env before build (PATH not inherited on ARM)
- Ruby (macOS): Removed
setup-opensslaction that caused OpenSSL conflicts
Features¶
- Test apps: Added test_apps for all 11 languages (Rust, Python, Node, Go, Java, C#, PHP, Ruby, Elixir, WASM, Homebrew CLI)
- Brew generator: New shell-script e2e test generator for Homebrew CLI testing
- WASM: Full e2e test support — removed incorrect language skips from all fixtures
- WASM codegen: Fixed
mock_urlandhandleargument handling in generated tests - Go: Updated to Go 1.26
- Idempotency: All 14 registry publish jobs check for existing packages before publishing
Infrastructure¶
- Publish workflow: 66/76 jobs succeeded (0 failures, 10 skipped) on rc.2
- Shared actions: Upstreamed
setup-opensslfix, leveraged shared build/publish actions fromkreuzberg-dev/actions - Fixtures: Removed all language skip blocks — all bindings are full crawlers
0.1.0-rc.2¶
- Initial multi-registry publish (crates.io, PyPI, npm, RubyGems, Maven Central, NuGet, Packagist, Hex.pm, Go, WASM, CLI binaries, Docker, Homebrew)
- Published kreuzcrawl and kreuzcrawl-cli to crates.io
- Created Homebrew formula in homebrew-tap repo
0.1.0-rc.1¶
- Initial release candidate