jsongrep: Una Herramienta de Consulta JSON Basada en DFA que Supera a jq en Puntos de Referencia

✍️ OpenClawRadar📅 Publicado: 27 de marzo de 2026🔗 Source
jsongrep: Una Herramienta de Consulta JSON Basada en DFA que Supera a jq en Puntos de Referencia
Ad

Qué hace jsongrep

jsongrep (binario jg) toma una consulta y una entrada JSON e imprime cada valor cuya ruta a través del documento coincida con la consulta. Trata los documentos JSON como árboles donde los objetos y arreglos se ramifican, los escalares son hojas, y las claves e índices etiquetan los bordes. El lenguaje de consulta es un lenguaje regular sobre el alfabeto de claves e índices.

Características del lenguaje de consulta

Las rutas con punto seleccionan campos anidados por nombre: jg 'roommates[0].name' devuelve roommates.[0].name: "Alice".

Los comodines coinciden con cualquier clave única (*) o cualquier índice de arreglo ([*]): jg 'favorite_drinks[*]' devuelve todos los elementos del arreglo.

La alternancia (|) coincide con cualquiera de las ramas: jg 'name | roommates' devuelve ambos campos.

El descenso recursivo usa * y [*] dentro de una estrella de Kleene para recorrer arbitrariamente profundo: jg '(* | [*])*.name' encuentra cada campo de nombre en cualquier profundidad. La bandera -F proporciona una forma abreviada: jg -F name hace lo mismo.

El opcional (?) coincide con cero o una ocurrencia: jg 'roommates[0].favorite_food?' devuelve tanto el objeto padre como el valor del campo.

Ad

Enfoque técnico

jsongrep compila consultas en autómatas finitos deterministas (DFA) utilizando una canalización que incluye: analizar la consulta, tratar JSON como un árbol, construir un NFA usando el algoritmo de Glushkov, determinizar mediante construcción de subconjuntos y buscar usando DFS con transiciones DFA. Esto permite procesar en una sola pasada con trabajo O(1) por símbolo de entrada, evitando retroceso, pilas de recursión y explosión exponencial en consultas patológicas.

El autor señala que esto difiere fundamentalmente de herramientas como jq, jmespath o jsonpath-rust, que interpretan expresiones de ruta, evalúan consultas en cada nodo, verifican predicados y descienden recursivamente, potencialmente revisitando subárboles o manteniendo listas de trabajo con consultas de descenso recursivo.

Instalación y disponibilidad

Instalar desde crates.io: cargo install jsongrep. Como ripgrep (que inspiró el proyecto), jsongrep es multiplataforma con binarios disponibles y escrito en Rust.

La herramienta detecta si la salida se canaliza a comandos como less o sort y omite las rutas JSON por defecto (anular con la opción --with-path).

📖 Leer la fuente completa: HN LLM Tools

Ad

👀 Ver también

🦀
Herramientas

Usar un chat adversarial de Claude para detectar ambigüedades iniciales antes de que te cuesten caro

Un desarrollador añadió un segundo chat de Claude cuya única función es revisar de manera adversaria los kickoffs en busca de especificaciones ambiguas y fallos silenciosos, ahorrando un estimado de $150-400 en retrabajo de Claude Code en una fase del proyecto.

OpenClawRadar
Capa de Enrutamiento de Contexto Reduce el Uso de Tokens de Código de Claude mediante el Segimiento de Archivos Accedidos
Herramientas

Capa de Enrutamiento de Contexto Reduce el Uso de Tokens de Código de Claude mediante el Segimiento de Archivos Accedidos

Un desarrollador ahorró aproximadamente $80 por mes en el uso de Claude Code al agregar una capa de enrutamiento de contexto que evita que la IA vuelva a leer los mismos archivos del repositorio en turnos posteriores. La herramienta rastrea qué archivos ya se han accedido para reducir el consumo redundante de tokens.

OpenClawRadar
🦀
Herramientas

Uso de Claude 3.0.0: Rastreador de barra de menú de código abierto para macOS para Claude y Codex

Usage4Claude 3.0.0 añade soporte opcional para Codex, inicio de sesión integrado en el navegador para Claude, cambio entre múltiples cuentas y notificaciones localizadas.

OpenClawRadar
Pruebas de δ-Mem en Apple Silicon: Implementación MLX y Benchmarks
Herramientas

Pruebas de δ-Mem en Apple Silicon: Implementación MLX y Benchmarks

El artículo δ-mem implementado vía mlx en una MacMini 64GB muestra resultados mixtos pero prometedores en benchmarks locales, con ganancias en escenarios realistas de replay.

OpenClawRadar