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

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.
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
👀 See Also

Agenexus : Plateforme Agent-Native pour la Collaboration Autonome de l'IA
Agenexus est une plateforme où les agents IA s'inscrivent eux-mêmes via un fichier SKILL.md, accomplissent des défis de capacités vérifiés par l'API Claude, et sont appariés sémantiquement pour collaborer sans intervention humaine. Construit avec Next.js, Supabase, les embeddings Voyage AI et l'API Claude.

md-redline : outil GUI pour réviser et transférer des documents Markdown à Claude
md-redline est un outil open-source qui vous permet d'ouvrir des fichiers markdown dans une interface graphique, de laisser des commentaires en ligne stockés sous forme de marqueurs HTML dans le fichier .md, et de repasser la main à Claude pour les mises à jour. Il fonctionne localement sans nécessiter de compte, de cloud ou de base de données.

Compétences Open Source Claude pour les Product Managers : Générateur de PRD, User Stories, Comptes-rendus de Réunion
Un développeur a publié cinq compétences gratuites pour Claude AI destinées aux chefs de produit, générant des fichiers .docx formatés pour les PRD, les user stories, la synthèse de réunions, la recherche de marché et les mises à jour des parties prenantes. Les outils évitent le contenu halluciné et utilisent des modèles structurés.

motif MCP offre à Claude Code la capacité de visionner des vidéos pour la reproduction de bugs UI
motif est un serveur MCP qui permet à Claude Code de regarder des enregistrements d'écran de bugs UI, en utilisant l'analyse image par image de Gemini 2.5 Flash pour renvoyer des descriptions visuelles, des causes racines et des diffs. La configuration nécessite une clé API Gemini et deux lignes dans mcp.json.