jsongrep: инструмент для запросов к JSON на основе DFA, превосходящий jq в тестах производительности

✍️ OpenClawRadar📅 Опубликовано: 27 марта 2026 г.🔗 Source
jsongrep: инструмент для запросов к JSON на основе DFA, превосходящий jq в тестах производительности
Ad

Что делает jsongrep

jsongrep (бинарный файл jg) принимает запрос и JSON-ввод и выводит каждое значение, путь которого в документе соответствует запросу. Он рассматривает JSON-документы как деревья, где объекты и массивы являются ветвями, скалярные значения — листьями, а ключи и индексы обозначают рёбра. Язык запросов представляет собой регулярный язык над алфавитом ключей и индексов.

Возможности языка запросов

Точечные пути выбирают вложенные поля по имени: jg 'roommates[0].name' возвращает roommates.[0].name: "Alice".

Подстановочные знаки соответствуют любому отдельному ключу (*) или любому индексу массива ([*]): jg 'favorite_drinks[*]' возвращает все элементы массива.

Альтернация (|) соответствует любой из ветвей: jg 'name | roommates' возвращает оба поля.

Рекурсивный спуск использует * и [*] внутри звёздочки Клини для обхода на произвольную глубину: jg '(* | [*])*.name' находит каждое поле name на любой глубине. Флаг -F предоставляет сокращённую запись: jg -F name делает то же самое.

Опциональный элемент (?) соответствует нулю или одному вхождению: jg 'roommates[0].favorite_food?' возвращает как родительский объект, так и значение поля.

Ad

Технический подход

jsongrep компилирует запросы в детерминированные конечные автоматы (ДКА) с использованием конвейера, который включает: разбор запроса, рассмотрение JSON как дерева, построение НКА с помощью алгоритма Глушкова, детерминизацию через построение подмножеств и поиск с использованием DFS с переходами ДКА. Это позволяет обрабатывать данные за один проход с O(1) работой на каждый входной символ, избегая возвратов, рекурсивных стеков и экспоненциального взрыва на проблемных запросах.

Автор отмечает, что это фундаментально отличается от таких инструментов, как jq, jmespath или jsonpath-rust, которые интерпретируют выражения путей, вычисляют запросы в каждом узле, проверяют предикаты и рекурсивно спускаются — потенциально повторно посещая поддеревья или поддерживая списки задач с рекурсивными запросами спуска.

Установка и доступность

Установите из crates.io: cargo install jsongrep. Как и ripgrep (который вдохновил проект), jsongrep является кроссплатформенным, с доступными бинарными файлами и написан на Rust.

Инструмент определяет, направлен ли вывод в команды типа less или sort, и по умолчанию опускает пути JSON (можно переопределить с помощью опции --with-path).

📖 Read the full source: HN LLM Tools

Ad

👀 Смотрите также

Transloadit MCP Server подключает AI-агентов к конвейеру обработки медиа
Инструменты

Transloadit MCP Server подключает AI-агентов к конвейеру обработки медиа

Transloadit создал MCP-сервер, который подключает Claude и других ИИ-агентов к их конвейеру обработки медиа с 86 Роботами для обработки видео, аудио, изображений и документов. Настройка в Claude Code требует одной строки: npx -y @transloadit/mcp-server stdio с переменными окружения TRANSLOADIT_KEY и TRANSLOADIT_SECRET.

OpenClawRadar
Навык OpenClaw для поиска и воспроизведения Apple Music опубликован на ClawHub.
Инструменты

Навык OpenClaw для поиска и воспроизведения Apple Music опубликован на ClawHub.

Навык apple-music-play, опубликованный на ClawHub, позволяет искать в онлайн-каталоге Apple Music и воспроизводить треки напрямую в приложении Music на macOS, не требуя наличия песен в локальной библиотеке.

OpenClawRadar
Altimate Code: Открытый агентный инструментарий для инженерии данных
Инструменты

Altimate Code: Открытый агентный инструментарий для инженерии данных

Altimate Code — это открытый фреймворк, предоставляющий детерминированные инструменты для инженерии данных для AI-агентов, решающий такие проблемы, как галлюцинированный SQL и отсутствие контекста схемы. Он включает отслеживание происхождения на уровне столбцов, обнаружение SQL-антипаттернов и интеграцию с dbt, с показателями производительности 74,4% на ADE-bench.

OpenClawRadar
Memora v0.2.25 MCP Сервер: Скорость записи в базу данных D1 увеличена в 5 раз
Инструменты

Memora v0.2.25 MCP Сервер: Скорость записи в базу данных D1 увеличена в 5 раз

Memora v0.2.25, сервер MCP для постоянной памяти Claude, достигает 5-кратного ускорения записи в Cloudflare D1: время выполнения memory_create сократилось с 10+ секунд до ~1.8с, а memory_update — с 10+ секунд до ~1.1с за вызов.

OpenClawRadar