jsongrep : Un outil de requête JSON basé sur un DFA qui surpasse jq dans les benchmarks

✍️ OpenClawRadar📅 Publié: March 27, 2026🔗 Source
jsongrep : Un outil de requête JSON basé sur un DFA qui surpasse jq dans les benchmarks
Ad

Ce que fait jsongrep

jsongrep (binaire jg) prend une requête et une entrée JSON et affiche chaque valeur dont le chemin à travers le document correspond à la requête. Il traite les documents JSON comme des arbres où les objets et les tableaux se ramifient, les scalaires sont des feuilles, et les clés et indices étiquettent les arêtes. Le langage de requête est un langage régulier sur l'alphabet des clés et indices.

Fonctionnalités du langage de requête

Les chemins par points sélectionnent les champs imbriqués par nom : jg 'roommates[0].name' retourne roommates.[0].name: "Alice".

Les caractères génériques correspondent à n'importe quelle clé unique (*) ou n'importe quel indice de tableau ([*]) : jg 'favorite_drinks[*]' retourne tous les éléments du tableau.

L'alternance (|) correspond à l'une ou l'autre branche : jg 'name | roommates' retourne les deux champs.

La descente récursive utilise * et [*] à l'intérieur d'une étoile de Kleene pour parcourir arbitrairement en profondeur : jg '(* | [*])*.name' trouve chaque champ name à n'importe quelle profondeur. Le drapeau -F fournit un raccourci : jg -F name fait la même chose.

L'optionnel (?) correspond à zéro ou une occurrence : jg 'roommates[0].favorite_food?' retourne à la fois l'objet parent et la valeur du champ.

Ad

Approche technique

jsongrep compile les requêtes en automates finis déterministes (DFA) en utilisant un pipeline qui inclut : l'analyse de la requête, le traitement du JSON comme un arbre, la construction d'un NFA avec l'algorithme de Glushkov, la déterminisation via la construction par sous-ensembles, et la recherche en utilisant DFS avec transitions DFA. Cela permet un traitement en une seule passe avec un travail O(1) par symbole d'entrée, évitant le retour en arrière, les piles de récursion et l'explosion exponentielle sur les requêtes pathologiques.

L'auteur note que cela diffère fondamentalement des outils comme jq, jmespath, ou jsonpath-rust, qui interprètent les expressions de chemin, évaluent les requêtes à chaque nœud, vérifient les prédicats et descendent récursivement—potentiellement revisitant des sous-arbres ou maintenant des listes de travail avec des requêtes de descente récursive.

Installation et disponibilité

Installez depuis crates.io : cargo install jsongrep. Comme ripgrep (qui a inspiré le projet), jsongrep est multiplateforme avec des binaires disponibles et écrit en Rust.

L'outil détecte si la sortie est redirigée vers des commandes comme less ou sort et omet les chemins JSON par défaut (remplacez avec l'option --with-path).

📖 Read the full source: HN LLM Tools

Ad

👀 See Also

Outil Squeez compresse la sortie bash de plus de 90% pour étendre la fenêtre de contexte de code Claude
Tools

Outil Squeez compresse la sortie bash de plus de 90% pour étendre la fenêtre de contexte de code Claude

Squeez est un crochet qui compresse automatiquement la sortie brute de bash comme ps aux, docker logs et git log avant qu'elle n'atteigne Claude Code. Il réduit l'utilisation de tokens de 92,8 % en moyenne sur 19 commandes courantes, aidant les sessions à durer plus longtemps.

OpenClawRadar
L'outil Monitor de Claude Code achemine les logs du serveur de développement vers des corrections automatiques pilotées par l'IA
Tools

L'outil Monitor de Claude Code achemine les logs du serveur de développement vers des corrections automatiques pilotées par l'IA

L'outil Monitor de Claude Code vous permet d'exécuter un serveur de développement en arrière-plan, de consulter les logs avec des filtres grep intelligents, et de laisser Claude détecter automatiquement les erreurs, écrire des correctifs et les valider — pendant que vous testez l'interface utilisateur.

OpenClawRadar
Astryx : le système de design open source de Meta avec plus de 150 composants, personnalisable et prêt pour l'IA
Tools

Astryx : le système de design open source de Meta avec plus de 150 composants, personnalisable et prêt pour l'IA

Le système de design Astryx de Meta est désormais open source, avec plus de 150 composants React/StyleX, un CLI de scaffolding, un support MCP, et plus de 13 000 applications l'utilisant en interne. Actuellement en version bêta.

OpenClawRadar
Artifactr : Outil CLI local-first pour gérer les artefacts des agents d'IA de codage
Tools

Artifactr : Outil CLI local-first pour gérer les artefacts des agents d'IA de codage

Artifactr est un outil CLI gratuit et open-source pour gérer les artefacts LLM comme les compétences, commandes et définitions d'agents. Il stocke les fichiers dans des coffres portables sans connexion réseau et prend en charge la synchronisation automatique via des liens symboliques.

OpenClawRadar