Major Release: Complete API Consistency Across All 10 Language Bindings
This release achieves 100% API parity across Rust, Python, TypeScript, Ruby, Java, Go, PHP, C#, Elixir, and WebAssembly bindings. Every ExtractionConfig field is now available in all languages with consistent naming conventions and type safety.
📊 Release Stats:
- 70 files changed
- 11,839 lines added
- 300+ new tests across all bindings
- 4,500+ total tests passing
- Complete backward compatibility for all SDK APIs
What's New
MCP Interface
- Full
configparameter support: AllExtractionConfigoptions now available via MCP tools - Enables complete configuration pass-through from AI agents to Rust core
- Standardizes parameter handling across all MCP tools
CLI Improvements
--output-formatflag: Canonical replacement for--content-format--result-formatflag: Controls result structure (unified, element_based)--config-jsonflag: Inline JSON configuration--config-json-base64flag: Base64-encoded configuration support
Language Bindings
- All 10 bindings now expose identical API surface
- Added missing fields to PHP, Go, and Java bindings
- Fixed Ruby batch chunking operations
- Complete type safety across all languages
Testing & Documentation
- 300+ new tests across all bindings
- API consistency validator with CI integration
- Comprehensive migration guide (757 lines)
- Deprecation guide with code examples
Breaking Changes ⚠️
MCP Interface Only (AI agents only, no end-user impact):
enable_ocrandforce_ocrmoved underconfigobject- Old parameter names still work with deprecation warnings
Deprecations
- CLI:
--content-format→ use--output-formatinstead - Environment:
KREUZBERG_CONTENT_FORMAT→ useKREUZBERG_OUTPUT_FORMAT
All deprecated features remain functional in v4.2.0 and will be removed in v5.0.0.
Migration
See the Migration Guide for complete upgrade instructions.
Full Changelog: https://github.com/kreuzberg-dev/kreuzberg/blob/main/CHANGELOG.md#420---2026-01-26