A Faster Alternative to Jq
A new command-line tool called jsongrep promises much faster JSON querying than jq by using a more declarative, path-focused syntax and a DFA-based engine. Commenters debate how often jq’s performance is a real bottleneck—most everyday uses aren’t constrained by speed—while those working with multi‑gigabyte or terabyte‑scale JSON logs see clear value in incremental gains. The thread also touches on trade‑offs between speed and expressiveness, usability of jq’s syntax versus newer alternatives, and practical issues like packaging for ARM platforms and the author’s initially broken light‑mode web demo.
Site & UX Issues
- Multiple readers reported light-mode CSS bugs: white text on white background, unreadable links, overlays on code snippets.
- Workarounds included toggling dark mode or using reader mode.
- The author acknowledged neglecting light-mode testing and pushed fixes; some still saw issues initially.
- Benchmark charts were criticized: inconsistent scales, unclear coloring, missing explicit jq baseline, and hard-to-scan labels.
Performance Claims & Real-World Use
- Several commenters handle very large JSON/NDJSON (hundreds of MB to TBs) for logs, monitoring, ETL, and analytics; they care about 2–10× speedups in wall time and cloud cost.
- Others said jq has never felt slow for their interactive use; for them, “faster jq” is mostly marketing or niche.
- Some argued that performance at scale prevents tasks from becoming effectively impossible; even “one-off” jobs can be frequent in support/ops.
- There’s debate on whether shelling out to a CLI is appropriate for high-throughput or low-latency paths.
Syntax, Semantics & Developer Experience
- Many find jq’s syntax hard to remember, “arcane,” or conceptually slippery (especially around pipelines and arrays); they often rely on manuals or LLMs to write filters.
- Others defend jq’s model as simple once you internalize its semantics and value its concision in one-liners.
- jsongrep’s syntax is viewed by some as more intuitive for path-matching; others dislike it or want even simpler, JS- or Python-like query languages.
Positioning vs jq & Other Tools
- jsongrep is framed as a faster, less-expressive, search-only subset tool (no transformations, arithmetic, or interpolation).
- Some see this as useful as a pre-filter, but object to comparing it directly to full jq.
- Alternatives raised: jaq (jq-compatible, Rust), jj, oj (JSONPath), rq (Rego-like), gron/fastgron, custom JS-based tools, DuckDB/ClickHouse/SQLite, nushell and PowerShell with native JSON objects.
Distribution & Tooling Ecosystem
- Initial lack of arm64 macOS/Linux binaries drew criticism; others were content to install via Rust’s cargo.
- The author later added arm64 releases and the tool was packaged for Homebrew and arkade.
- One commenter dislikes “just install with cargo” due to toolchain bloat for small utilities.
Broader Optimization & Determinism Debate
- Some view micro-benchmarks and ns/ms savings as performative; others argue cumulative CPU/energy savings and reliability improvements justify performance work.
- Deterministic tools like jq are preferred over LLMs for actually running queries; LLMs are mainly used to generate jq expressions.