AIKraft Agents
Инструменты3 ноября 2026 г., 15:46 МСК🤖 Auto

RGX: Пропускает ripgrep, извлекая текст из PDF, архивов и GGUF

Новый инструмент на Rust rgx выполняет полнотекстовый поиск внутри бинарных контейнеров (PDF, Office, ZIP, GGUF) в процессе, обеспечивая +122% больше результатов по сравнению с ripgrep.

Баннер новости 11134

Проблема «непрозрачных» файлов

Стандартный инструмент ripgrep (rg) рассматривает такие форматы, как PDF, архивы или модели LLM, как «непрозрачные байты» и пропускает их, считая бинарными. Это создает слепые зоны при поиске информации. Проект RGX (Rust Grep X) решает эту проблему, внедряя адаптеры, которые извлекают текст непосредственно внутри процесса (in-process), без вызова внешних утилит.

Техническое превосходство и метрики

В отличие от аналога rga, который вызывает отдельный процесс для каждого файла, RGX работает в едином потоке. Это дает прирост производительности и точности. На тестовом корпусе с исходным кодом и архивами (RAR, 7z, tar, zstd и др.) RGX нашел 20 файлов, тогда как ripgrep — только 8 (так как он игнорировал архивы). Это разница в +122% найденных совпадений.

Характеристика RGX (rgx) Ripgrep (rg)
Поиск внутри PDF/Office/ZIP Да (in-process) Нет (считает бинарными)
Поиск внутри LLM (GGUF) Да (по тензорам и метаданным) Нет
Механизм парсинга Встроенные адаптеры Rust Внешние утилиты (для rga) или игнор
Размер бинарника (полный) ~9.3 MB ~1.5 MB (базовый rg)
Размер бинарника (оптимизированный) ~3.5 MB (только движок) —

Гибкая архитектура и кастомизация

Движок rgx_core написан на no_std Rust, что позволяет использовать его в ограниченных средах (например, в NAS или роутерах). Разработчики могут собирать бинарник выборочно, отключая ненужные форматы для экономии места:

  • Полная версия: 9 340 416 байт (поддержка всех форматов).
  • Оптимизированная: 4 014 592 байт (только zip, pdf, grib).
  • Ядро: 3 516 416 байт (только regex-движок, без адаптеров).

Продвинутая фильтрация по метаданным

RGX позволяет искать не только по тексту, но и по фактам файла через флаг --filter. Поддерживаются предикаты для MIME-типа, автора, GPS-координат, языков программирования внутри архивов и имен тензоров в моделях.

Примеры запросов:

  • rgx contrato --filter mime:pdf AND author:"ACME" — поиск по тексту в PDF конкретного автора.
  • rgx layer.*weight --filter tensor:name — поиск внутри safetensors моделей.
  • rgx api_key --filter container:zip AND lang:python — поиск ключей в Python-скриптах внутри ZIP-архивов.

Экосистема: rgx vs rgy

Репозиторий содержит два основных продукта:

  1. rgx — базовый движок и CLI, совместимый с ripgrep. Идеален для скриптов и пайплайнов.
  2. rgy — готовое приложение с индексацией. Индексирует диск один раз, позволяя быстро искать по имени и контенту. Поддерживает Windows, Linux, macOS и FreeBSD.

Установка доступна через Cargo, Homebrew, Winget и прямые ссылки на бинарники.

Источник: Github ↗