Jq Internals: Backtracking

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

Our great sponsors
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarLint - Clean code begins in your IDE with SonarLint
  • Zigi - Close all those tabs. Zigi will handle your updates.
  • Scout APM - Truly a developer’s best friend
  • jq

    Command-line JSON processor

    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

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Data Platform where developers build real-time applications for analytics, IoT and cloud-native services in less time with less code.

  • 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, powered with a minimal query language. (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.


  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

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