news.volyx.in

Jaq – A jq clone focused on correctness, speed, and simplicity (github.com)

440 points by tmcneal · 997 days ago · 229 comments on HN

Article summary

Jaq is a clone of the JSON data processing tool jq, focusing on correctness, speed, and simplicity. It supports additional data formats like YAML, CBOR, TOML, and XML, and is designed to be a drop-in replacement for jq. Jaq also provides a library, jaq-core, for compiling and running jq programs inside Rust programs. The project aims to provide a more correct and predictable implementation of jq while preserving compatibility in most cases.

Main themes

  • JSON data processing
  • Query languages
  • Tooling and workflows
  • Data manipulation and analysis
  • Programming languages and syntax
  • API requests and data integration

What commenters say

  • Some users prefer using SQL for querying JSON data, citing its higher-level syntax and expressiveness. Others find jq's syntax unique and useful, but sometimes difficult to understand. A few users have developed their own tools or workflows for querying JSON data, such as using DuckDB or Murex shell. Some commenters appreciate the simplicity and ease of use of tools like gron or jless for navigating and querying JSON data. There is a desire for a query language that can integrate API requests and join JSON responses declaratively. The choice between jq and yq depends on the specific use case and personal preference, with some users preferring one over the other due to differences in features and syntax.
  • The use of jq and similar tools can be complex and error-prone, especially for large and nested JSON datasets. Some users find that using a full-fledged programming language like Perl or Python can be more effective for certain tasks, despite the added complexity. The development of new tools and languages, such as nushell, aims to simplify the process of working with structured data and provide a more unified interface for querying and manipulating it.