Jq Internals: Backtracking

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • jq

    Discontinued Command-line JSON processor [Moved to: https://github.com/jqlang/jq] (by stedolan)

  • If there's no planned changes or unreleased work in the repo, then there's not much need for more releases. Jq is a pretty small tool and isn't obviously incomplete.

    Though it's funny because I do agree that in the past that jq wasn't being released often enough. There was a popular Github issue[1] with arguments and 70+ reactions about a confusing anti-feature in jq that turned out to have already been fixed and committed in 2015, before the Github issue was even opened, but the fix didn't actually make it into a released version until 2018! Definitely one of my more frustrating cases of investigating a software issue I ran into.

    [1] https://github.com/stedolan/jq/issues/1110

  • jaq

    A jq clone focussed on correctness, speed, and simplicity

  • I hear you, but OTOH in this thread are two alternative implementations, one which seems especially focused on "bolt tightening" some of the edge cases: https://github.com/01mf02/jaq#assignments

    Isn't the adage to only build a framework after the 3rd or 4th implementation? That seems to apply to writing a RFC, also

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • gojq

    Pure Go implementation of jq

  • dsq

    Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.

  • > dsq registers go-sqlite3-stdlib so you get access to numerous statistics, url, math, string, and regexp functions that aren't part of the SQLite base. (https://github.com/multiprocessio/dsq#standard-library)

    Ah, I wondered if they rolled their own SQL parser, but no, I now see the sqlite.go in the repo and all is made clear

  • jp

    Command line interface to JMESPath - http://jmespath.org

  • I have a hard time suggesting such a thing, because I find JMESPath incredibly inferior to jq's expressiveness, but if you're in the AWS ecosystem much, you may enjoy https://github.com/jmespath/jp#readme which uses the same query language as does awscli (https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-f...). That may at least pay more dividends than keeping jq's language in your head where it will only ever be used by jq

  • jqp

    A TUI playground to experiment with jq

  • jqp the Text User Interface for playing about with jq might help a bit.

    You can have your input JSON terminal left, the output post jq terminal right and interactively edit your jq script elements above.

    ( based upon the Go implementation of jq )

    See: https://github.com/noahgorstein/jqp

  • jet

    CLI to transform between JSON, EDN, YAML and Transit using Clojure (by borkdude)

  • Since starting to use jet, I haven't found anything jq could do that jet couldn't also do but with the additional feature of actually being able to read what I've done with it days later.

    https://github.com/borkdude/jet

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts