v0.3.0-rc.81
Pre-release
Pre-release
Changed
- Bump alef pin 0.25.47 → 0.25.49 and regenerate all bindings.
- Kotlin Android: modernized the build toolchain. Gradle 9.6, Android Gradle Plugin 9.2, Kotlin 2.4, compileSdk 36, minSdk 24 (the full-latest triple required under JDK 25 daemons); the Gradle wrapper is now generated from a shared module so the binding and e2e wrappers stay in lockstep. (alef 0.25.49)
Fixed
- Java (Panama FFM) returned empty response bodies. The handler upcall allocated its response in a per-call arena that could be reclaimed before Rust read the returned pointer; the response is now copied into
malloc'd memory that outlives the upcall, so full bodies survive the FFI boundary. (alef 0.25.48) - Java:
SsrfPolicy.deny_privatelost its default. Boxed-Booleanserde-default fields now restore their Rust default (deny_private = true) in the compact constructor when omitted, matching the core and the other bindings. (alef 0.25.49) - Swift: hard-coded bridge crate name in the post-build step. The Swift backend now builds the bridge crate via
packages/swift/rust/Cargo.tomlinstead of a fixed package name, keeping generated bindings project-agnostic. (alef 0.25.49) - PHP: parse
serde_json::Valueparams as JSON strings, convertBTreeMapparams from PHP hash maps, serialize string-mapped data-enum returns, and avoid requiringDefaultfor flat data-enum fallback arms. (alef 0.25.49) - NAPI: emit binding-to-core conversions for plain data enums in input DTOs and apply primitive casts on the DTO opaque let-binding call path. (alef 0.25.48–0.25.49)
- FFI: convert
Option<&[u8]>parameters as optional bytes rather than a nullable C string. (alef 0.25.48)
Zig
Add to your build.zig.zon:
.dependencies = .{
.kreuzcrawl-zig = .{\n .url = \"https://github.com/kreuzberg-dev/kreuzcrawl/releases/download/v0.3.0-rc.81/kreuzcrawl-zig-v0.3.0-rc.81.tar.gz\",\n .hash = \"kreuzcrawl-0.3.0-rc.81-l-oqNug2diABJSOQ5k2jm6dlZWWfKsbmaVfK81fv2kZq\",\n },\n},\n```\n