jsongrep는 {jq, jmespath, jsonpath-rust, jql}보다 빠릅니다.
jsongrep은 JSON 문서 내 경로를 정규 언어로 표현하고, 이를 결정적 유한 오토마타(DFA)로 컴파일하여 단일 패스 탐색을 수행하는 고성능 JSON 검색 도구입니다.
기존의 jq, jmespath, jsonpath-rust 같은 도구들이 쿼리를 해석하며 재귀적 탐색과 백트래킹을 수행하는 반면, jsongrep은 쿼리를 미리 DFA로 변환하여 각 노드 방문 시 O(1) 상태 전이만 수행하므로 탐색 속도가 매우 빠릅니다.
내부적으로는 PEG 문법으로 쿼리를 AST로 파싱하고, Glushkov 알고리즘으로 ε-전이 없는 NFA를 생성한 뒤, 이를 부분집합 구성법으로 DFA로 변환하여 JSON 트리를 깊이 우선 탐색하며 DFA 상태 전이에 따라 매칭 결과를 수집합니다.
벤치마크 결과, 특히 대용량 JSON(약 190MB)에서 jsongrep은 문서 파싱, 쿼리 컴파일, 검색 전 과정을 포함한 엔드투엔드 성능이 경쟁 도구 대비 월등히 우수함을 입증하였습니다.
다만, jsongrep은 jq처럼 복잡한 변환 기능은 제공하지 않으며, 쿼리 언어가 정규 표현식 수준으로 제한되어 있어 검색에 특화된 도구임을 유념해야 합니다.