jsongrep: Ein DFA-basiertes JSON-Abfragewerkzeug, das jq in Benchmarks übertrifft

✍️ OpenClawRadar📅 Veröffentlicht: 27. März 2026🔗 Source
jsongrep: Ein DFA-basiertes JSON-Abfragewerkzeug, das jq in Benchmarks übertrifft
Ad

Was jsongrep tut

jsongrep (jg-Binary) nimmt eine Abfrage und eine JSON-Eingabe und gibt jeden Wert aus, dessen Pfad durch das Dokument der Abfrage entspricht. Es behandelt JSON-Dokumente als Bäume, in denen Objekte und Arrays verzweigen, Skalare Blätter sind und Schlüssel sowie Indizes die Kanten beschriften. Die Abfragesprache ist eine reguläre Sprache über dem Alphabet von Schlüsseln und Indizes.

Merkmale der Abfragesprache

Punktpfade wählen verschachtelte Felder nach Namen aus: jg 'roommates[0].name' gibt roommates.[0].name: "Alice" zurück.

Wildcards passen auf jeden einzelnen Schlüssel (*) oder jeden Array-Index ([*]): jg 'favorite_drinks[*]' gibt alle Array-Elemente zurück.

Alternation (|) passt auf einen von zwei Zweigen: jg 'name | roommates' gibt beide Felder zurück.

Rekursiver Abstieg verwendet * und [*] innerhalb eines Kleene-Sterns, um beliebig tief zu gehen: jg '(* | [*])*.name' findet jedes Namensfeld in beliebiger Tiefe. Das Flag -F bietet eine Kurzform: jg -F name tut dasselbe.

Optional (?) passt auf null oder ein Vorkommen: jg 'roommates[0].favorite_food?' gibt sowohl das Elternobjekt als auch den Feldwert zurück.

Ad

Technischer Ansatz

jsongrep kompiliert Abfragen in deterministische endliche Automaten (DFA) mithilfe einer Pipeline, die umfasst: Parsen der Abfrage, Behandeln von JSON als Baum, Konstruieren eines NFA mit Glushkovs Algorithmus, Determinierung durch Subset-Konstruktion und Suche mit DFS und DFA-Übergängen. Dies ermöglicht die Verarbeitung in einem einzigen Durchlauf mit O(1)-Arbeit pro Eingabesymbol, wodurch Backtracking, Rekursionsstapel und exponentielles Anwachsen bei pathologischen Abfragen vermieden werden.

Der Autor weist darauf hin, dass sich dies grundlegend von Tools wie jq, jmespath oder jsonpath-rust unterscheidet, die Pfadausdrücke interpretieren, Abfragen an jedem Knoten auswerten, Prädikate prüfen und rekursiv absteigen – wobei möglicherweise Teilbäume erneut besucht oder Arbeitslisten mit rekursiven Abstiegsabfragen verwaltet werden.

Installation und Verfügbarkeit

Installation von crates.io: cargo install jsongrep. Wie ripgrep (das das Projekt inspiriert hat) ist jsongrep plattformübergreifend mit verfügbaren Binärdateien und in Rust geschrieben.

Das Tool erkennt, ob die Ausgabe an Befehle wie less oder sort weitergeleitet wird, und lässt JSON-Pfade standardmäßig weg (überschreibbar mit der Option --with-path).

📖 Read the full source: HN LLM Tools

Ad

👀 Siehe auch

0Latency: Eine persistente Speicherschicht für KI-Agenten über MCP
Werkzeuge

0Latency: Eine persistente Speicherschicht für KI-Agenten über MCP

0Latency ist ein MCP-Server, der persistente Speicher für Claude und andere KI-Agenten hinzufügt, Erinnerungen über Sitzungen hinweg speichert, um Kontextverlust zu verhindern. Es funktioniert nativ mit Claude Desktop, Claude Code, claude.ai, GPT, Gemini, Cursor und jedem MCP-kompatiblen Agenten.

OpenClawRadar
KI-Codeabruf: Warum Vektor-Embeddings scheitern und dateiweise LLM-Graphen gewinnen
Werkzeuge

KI-Codeabruf: Warum Vektor-Embeddings scheitern und dateiweise LLM-Graphen gewinnen

Nach einem Jahr Aufbau eines Code-Indexierungssystems stellte das Team hinter Bytebell fest, dass Vektor-Embeddings auf Code-Chunks und Tree-Sitter-ASTs beide unzureichend waren, während pro-Datei-LLM-Zusammenfassungen, die in einem Neo4j-Graphen mit semantischer Volltextsuche gespeichert sind, die Retrieval-Präzision deutlich verbesserten.

OpenClawRadar
SkillOpt: Optimierung von Markdown-Fähigkeitsdateien als trainierbare Parameter für KI-Agenten
Werkzeuge

SkillOpt: Optimierung von Markdown-Fähigkeitsdateien als trainierbare Parameter für KI-Agenten

SkillOpt formalisiert den Ad-hoc-Prozess des Bearbeitens von Markdown-Skill-Dateien für KI-Codierungsagenten, indem es Frontier-Modelle nutzt, um begrenzte Änderungen vorzuschlagen, die an Validierungssätzen geprüft werden. Die besten Skills konvergieren mit 1-4 akzeptierten Änderungen aus vielen Vorschlägen und lassen sich zwischen Modellen wie Codex und Claude Code übertragen.

OpenClawRadar
Vibeyard fügt P2P-Sitzungsteilung für Claude Code hinzu.
Werkzeuge

Vibeyard fügt P2P-Sitzungsteilung für Claude Code hinzu.

Vibeyard, eine Open-Source-IDE für Claude Code, unterstützt jetzt Peer-to-Peer-Sitzungsteilung. Benutzer können Live-Terminalsitzungen mit Teammitgliedern über verschlüsselte WebRTC-Verbindungen mit Lese- oder Lese-Schreib-Zugriffsmodi teilen.

OpenClawRadar