jsongrep: Uma Ferramenta de Consulta JSON Baseada em DFA Que Supera o jq em Benchmarks

✍️ OpenClawRadar📅 Publicado: March 27, 2026🔗 Source
jsongrep: Uma Ferramenta de Consulta JSON Baseada em DFA Que Supera o jq em Benchmarks
Ad

O que o jsongrep faz

jsongrep (binário jg) recebe uma consulta e uma entrada JSON e imprime cada valor cujo caminho através do documento corresponda à consulta. Ele trata documentos JSON como árvores onde objetos e arrays são ramificações, escalares são folhas, e chaves e índices rotulam as arestas. A linguagem de consulta é uma linguagem regular sobre o alfabeto de chaves e índices.

Recursos da Linguagem de Consulta

Caminhos com ponto selecionam campos aninhados por nome: jg 'roommates[0].name' retorna roommates.[0].name: "Alice".

Curingas correspondem a qualquer chave única (*) ou qualquer índice de array ([*]): jg 'favorite_drinks[*]' retorna todos os elementos do array.

Alternância (|) corresponde a qualquer ramificação: jg 'name | roommates' retorna ambos os campos.Descida recursiva usa * e [*] dentro de uma estrela de Kleene para percorrer arbitrariamente profundamente: jg '(* | [*])*.name' encontra cada campo name em qualquer profundidade. A flag -F fornece uma abreviação: jg -F name faz o mesmo.

Opcional (?) corresponde a zero ou uma ocorrência: jg 'roommates[0].favorite_food?' retorna tanto o objeto pai quanto o valor do campo.

Ad

Abordagem Técnica

jsongrep compila consultas em autômatos finitos determinísticos (DFA) usando um pipeline que inclui: análise da consulta, tratamento do JSON como uma árvore, construção de um NFA usando o algoritmo de Glushkov, determinização via construção de subconjuntos, e busca usando DFS com transições DFA. Isso permite processamento em uma única passagem com trabalho O(1) por símbolo de entrada, evitando retrocesso, pilhas de recursão e explosão exponencial em consultas patológicas.

O autor observa que isso difere fundamentalmente de ferramentas como jq, jmespath ou jsonpath-rust, que interpretam expressões de caminho, avaliam consultas em cada nó, verificam predicados e descem recursivamente—potencialmente revisitando subárvores ou mantendo listas de trabalho com consultas de descida recursiva.

Instalação e Disponibilidade

Instale do crates.io: cargo install jsongrep. Como ripgrep (que inspirou o projeto), jsongrep é multiplataforma com binários disponíveis e escrito em Rust.

A ferramenta detecta se a saída é canalizada para comandos como less ou sort e omite caminhos JSON por padrão (substitua com a opção --with-path).

📖 Leia a fonte completa: HN LLM Tools

Ad

👀 See Also

Personalizando o Claude IA para Feedback Aprimorado
Tools

Personalizando o Claude IA para Feedback Aprimorado

Ajuste as configurações da Claude AI para evitar concordância excessiva e promover mais pensamento crítico e feedback prático.

OpenClawRadar
Argus: Uma Extensão do VS Code para Depurar Custos e Comportamento de Sessão do Claude Code
Tools

Argus: Uma Extensão do VS Code para Depurar Custos e Comportamento de Sessão do Claude Code

Um desenvolvedor criou o Argus, uma extensão do VS Code que analisa transcrições JSONL do Claude Code e as exibe em uma linha do tempo em tempo real, com detalhamento de tokens/custo por etapa, taxa de acerto de cache e sinalização de loops de repetição, leituras duplicadas e pressão de contexto.

OpenClawRadar
Habilidade GAN para Claude Code: Ferramenta de IA Adversarial para Refinamento de Ideias
Tools

Habilidade GAN para Claude Code: Ferramenta de IA Adversarial para Refinamento de Ideias

Uma habilidade do Claude Code chamada /gan usa funções adversárias de IA para criticar e melhorar ideias através de fases alternadas de Discriminador e Gerador, com recursos como modos de intensidade, saída multilíngue e seleção forçada de função desenvolvidos por meio de autoiteração.

OpenClawRadar
Integração OpenClaw para Mercados de Ações Indianos: Terminal de Análise e Negociação Multi-Agente
Tools

Integração OpenClaw para Mercados de Ações Indianos: Terminal de Análise e Negociação Multi-Agente

Um terminal de negociação de código aberto para mercados indianos foi configurado como um servidor de habilidades OpenClaw, permitindo que qualquer agente OpenClaw obtenha dados do mercado de ações indiano e execute análises completas via HTTP sem instalação local. O sistema utiliza sete agentes especialistas trabalhando em paralelo para gerar análises estruturadas com planos de negociação.

OpenClawRadar