[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_BYTESandKREUZBERG_MAX_MULTIPART_FIELD_BYTESfor 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.jsin 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 = falseto 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_SERIALIZATIONenvironment variable - Go: 7 legacy error codes
- Ruby:
Ocr = OCRalias - Rust: Deprecated
Metadata.datefield - Cargo: 3 legacy feature aliases
- TypeScript:
Security
- Custom font directories validated with canonicalization
- Symlinks resolved to prevent path traversal attacks
- All custom paths validated before use