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

Habilidades OpenClaw com Alta Adoção: Capability Evolver, WACLI, Composio e Mais
Tools

Habilidades OpenClaw com Alta Adoção: Capability Evolver, WACLI, Composio e Mais

Uma postagem no Reddit destaca várias habilidades do OpenClaw com números significativos de instalações e casos de uso específicos, incluindo o Capability Evolver para auditoria automática do comportamento do agente, WACLI para acesso ao WhatsApp e Composio para conexão com mais de 860 aplicativos.

OpenClawRadar
Top 6 Habilidades Open Source do Claude (15 de abril a 3 de maio)
Tools

Top 6 Habilidades Open Source do Claude (15 de abril a 3 de maio)

Seis habilidades open-source do Claude dos últimos 15 dias: alquimia de marca, npm-downloads-to-leads, hyperframes, newsletter por e-mail, precificação e mais. Detalhamento de cada funcionalidade.

OpenClawRadar
🦀
Tools

Hax: Um Agente de Codificação Minimalista e Nativo de Terminal em C

Hax é um binário nativo em C que inicia instantaneamente, usa apenas alguns MB de RAM e trata LLMs locais como cidadãos de primeira classe. Ele descobre automaticamente llama.cpp e outros provedores sem blocos de configuração.

OpenClawRadar
Atualização do Cliente React OpenClaw Adiciona Modelo por Agente, Ferramenta CLI e Inicialização Automática
Tools

Atualização do Cliente React OpenClaw Adiciona Modelo por Agente, Ferramenta CLI e Inicialização Automática

O cliente de código aberto OpenClaw recebeu uma grande atualização com quatro recursos principais: atribuição de modelo por agente, atualizações automáticas, uma nova ferramenta CLI para gerenciamento e inicialização automática após a reinicialização do sistema.

OpenClawRadar