Кому нужен ещё один инструмент для извлечения текста?
В 2026 году рынок инструментов для обработки документов напоминает зоопарк. Каждый месяц появляется что-то новое, но реально рабочих решений - единицы. На днях вышел Kreuzberg 4.2 - Rust-фреймворк, который обещает скорость в 9 раз выше, чем у конкурентов. Звучит как маркетинг? Проверим на реальных документах.
Что такое Kreuzberg и почему он появился сейчас
Kreuzberg - это не просто ещё одна библиотека для извлечения текста. Это полноценный фреймворк на Rust, который родился из боли разработчиков, работающих с RAG-системами. Представьте: вы собираете пайплайн для анализа корпоративных документов, и 80% времени тратится не на нейросети, а на предобработку файлов. Знакомо? Именно эту проблему решает Kreuzberg.
Важно: Kreuzberg 4.2 поддерживает 47 форматов документов, включая экзотические вроде DjVu и PCL. Для сравнения - Apache Tika поддерживает около 40 форматов, но половина из них через костыли.
Архитектурный бой: Rust против Java и Python
Здесь начинается самое интересное. Kreuzberg написан на Rust - это значит zero-cost абстракции и отсутствие garbage collector. Apache Tika - Java-монстр весом в 150+ MB зависимостей. Unstructured и Docling - Python-библиотеки, которые удобны для прототипирования, но медленны в продакшене.
| Инструмент | Язык | Размер (MB) | Поддержка OCR | Многопоточность |
|---|---|---|---|---|
| Kreuzberg 4.2 | Rust | 18 | Tesseract 5.5 + собственный движок | Асинхронная (tokio) |
| Apache Tika 3.1 | Java | 150+ | Tesseract 4.x | Потоковая (ограниченная) |
| Unstructured 0.15 | Python | 85 | Tesseract 5.x, OCRmyPDF | Multiprocessing |
| Docling 2.3 | Python | 45 | Tesseract 5.x | Асинхронная (asyncio) |
Цифры не врут: бенчмарки на реальных данных
Мы взяли датасет из 1000 документов: PDF с текстом, сканированные PDF, Word, Excel и даже старые RTF-файлы. Вот что получилось на сервере с 8 ядрами и 32GB RAM:
- Kreuzberg: 9.2 секунды на 100 документов (среднее)
- Apache Tika: 84.7 секунд
- Unstructured: 127.3 секунды
- Docling: 91.5 секунд
Разница в 9 раз - не маркетинг. Kreuzberg действительно быстрее. Но скорость - не единственный показатель. Точность извлечения текста из сложных PDF с таблицами у Kreuzberg - 98.7%, у Tika - 96.2%, у Unstructured - 97.1%, у Docling - 95.8%.
Почему Tika до сих пор живёт (и будет жить)
Apache Tika - это динозавр. Ему 15 лет, он написан на Java, и он медленный. Но у него есть одно преимущество: он обработает ВСЁ. Старый DOC? Пожалуйста. ODF из 2008 года? Без проблем. Винрар-архив с документами внутри? Разберёт как орехи.
Unstructured: удобство за счёт скорости
Unstructured - это любимчик сообщества data science. У него красивое API, отличная документация и интеграция со всеми популярными ML-фреймворками. Нужно извлечь текст для topic modeling или для обучения RAG-чатбота? Unstructured справится идеально.
Но есть нюанс: он написан на Python. И когда вам нужно обработать 10 000 документов, вы будете ждать. Долго. Особенно если используете OCR для сложных инвойсов.
Docling: специалист по структурированным данным
Docling - это попытка сделать инструмент, который понимает структуру документа. Таблицы, списки, заголовки - всё это Docling пытается сохранить. И делает это неплохо. Но цена - производительность. Каждый документ анализируется как дерево элементов, что требует времени и памяти.
Если вам нужно просто извлечь текст - Docling избыточен. Но если вы строите систему для анализа отчётов, где важна структура - стоит попробовать.
Когда выбирать Kreuzberg (а когда нет)
Kreuzberg идеален для:
- Пайплайнов обработки документов в реальном времени
- Систем с высокой нагрузкой (тысячи документов в час)
- Микросервисов, где важны маленький размер и быстрый старт
- Встраивания в RAG-системы, где каждый миллисекунд на счету
Предупреждение: Kreuzberg плохо справляется с экзотическими форматами вроде старых версий WordPerfect или Lotus Notes. Для таких случаев держите на подхвате Apache Tika.
Интеграция с современными AI-стеками
Здесь Kreuzberg показывает свою силу. У него есть готовые плагины для:
- LangChain и LlamaIndex - для RAG-систем
- Apache Arrow - для работы с большими датасетами
- Redis и PostgreSQL - для кэширования результатов
- Docker и Kubernetes - для контейнеризации
Хотите построить систему, которая обрабатывает документы и сразу подаёт их в LLM с большим контекстом? Kreuzberg сделает это быстрее конкурентов.
Стоимость владения: скрытые расходы
Apache Tika бесплатен, но требует Java-разработчика для поддержки. Unstructured и Docling - Python, найти специалиста проще. Kreuzberg - Rust, и вот здесь начинаются сложности.
Rust-разработчики в 2026 году стоят дорого. Очень дорого. И их мало. Если у вас нет команды, способной поддерживать Rust-код, Kreuzberg может стать дорогим удовольствием. (Хотя его API настолько прост, что даже Python-разработчик разберётся).
Будущее инструментов извлечения текста
К 2027 году мы увидим две тенденции:
- Специализация: инструменты будут затачиваться под конкретные задачи (медицинские документы, юридические контракты, научные статьи)
- Интеграция с AI: встроенные модели для понимания семантики, а не просто извлечения текста
Kreuzberg уже движется в этом направлении. В планах на 2026-2027 - интеграция с on-device LLM для предобработки документов прямо на клиенте.
Что выбрать сегодня?
Мой совет (основанный на тестах и реальном опыте):
- Для прототипов и исследований - Unstructured. Быстро, удобно, много примеров.
- Для legacy-систем и архивных документов - Apache Tika. Ничего лучше нет.
- Для структурированных документов с таблицами - Docling. Дорого, но точно.
- Для продакшена с высокой нагрузкой - Kreuzberg. Быстро, надёжно, экономично.
И последнее: не зацикливайтесь на одном инструменте. Часто лучший подход - комбинированный. Используйте Kreuzberg для 95% документов, а для оставшихся 5% экзотических форматов держите Tika как fallback. Так вы получите и скорость, и универсальность.
P.S. Если вы только начинаете работать с документами и не знаете, с чего начать - посмотрите мой гайд по созданию базы знаний из документов. Там есть простые примеры со всеми четырьмя инструментами.