github kreuzberg-dev/kreuzberg v4.0.0-rc.19
4.0.0-rc.19

pre-release8 hours ago

[4.0.0-rc.19] - 2025-12-24

Added

  • Font configuration API - Configurable font provider with custom directory support and automatic path expansion
  • Homebrew bottle support - Pre-built macOS bottles for faster installation
  • Environment variable configuration - KREUZBERG_MAX_REQUEST_BODY_BYTES and KREUZBERG_MAX_MULTIPART_FIELD_BYTES for API size limits
  • Config file caching - Improved performance for TOML/YAML/JSON config file loading

Fixed

  • Large file uploads (issue #248) - Files larger than 2MB are now accepted (configurable up to 100MB)
  • Browser package Vite compatibility (issue #249) - Fixed missing pdfium.js in dist bundle
  • Node.js missing binaries (issue #241) - Fixed resolution in Docker and pnpm monorepo environments
  • Ruby gem native extension build - Simplified build system with proper linker path resolution
  • Java E2E test compatibility - Regenerated tests for Java 25
  • Docker ONNX Runtime - Pinned to version 1.23 for compatibility
  • Font provider thread safety - Fixed race condition and graceful lock poisoning handling
  • Custom font path validation - Added security hardening with symlink resolution and canonicalization

Changed

  • BREAKING: Custom font provider now enabled by default (set enabled = false to disable)
  • Default API size limit - Increased to 100MB (configurable via KREUZBERG_MAX_UPLOAD_SIZE_MB)
  • TypeScript serialization - Replaced MessagePack + Base64 with direct JSON serialization

Performance

  • 15-25% overall execution improvement, 30-45% memory reduction
  • String allocation optimization (-2.57% CPU, -0.81% memory)
  • Memory pool improvements (35-50% reduction: 60-135 MB → 30-80 MB)
  • Post-processing pipeline optimizations (10-17% CPU improvement)
  • TypeScript thread pool dynamically sized by CPU count

Removed

  • Legacy code cleanup - Removed deprecated backward compatibility
    • TypeScript: KREUZBERG_LEGACY_SERIALIZATION environment variable
    • Go: 7 legacy error codes
    • Ruby: Ocr = OCR alias
    • Rust: Deprecated Metadata.date field
    • Cargo: 3 legacy feature aliases

Security

  • Custom font directories validated with canonicalization
  • Symlinks resolved to prevent path traversal attacks
  • All custom paths validated before use

Don't miss a new kreuzberg release

NewReleases is sending notifications on new releases.