wsjq VS kubectl-jq

Compare wsjq vs kubectl-jq and see what are their differences.

wsjq

Whitespace interpreter and debugger in jq (by thaliaarchi)

kubectl-jq

Kubectl plugin that works like "kubectl get" but runs everything through a JQ program you provide (by jrockway)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
wsjq kubectl-jq
2 1
13 12
- -
6.8 2.6
about 1 month ago 7 months ago
jq Go
Mozilla Public License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

wsjq

Posts with mentions or reviews of wsjq. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-26.
  • Zq: An Easier (and Faster) Alternative to Jq
    36 projects | news.ycombinator.com | 26 Apr 2022
  • An Introduction to JQ
    10 projects | news.ycombinator.com | 24 Aug 2021
    jq is unsurprisingly Turing complete, so I wrote a Whitespace interpreter[0] in jq. It is able to handle real-time I/O by requesting lines on-demand from stdin, which is the main input source, with `input` and outputting strings in a stream.

    With a relatively large jq program like that, it is critical that the main recursive loop run efficiently, so it's annoying that there's no way to detect whether tail call optimization was applied, other than benchmarking. It would also be nice if object values were lazily evaluated so that it would be possible to create ad hoc switches.

    [0]: https://github.com/andrewarchi/wsjq

kubectl-jq

Posts with mentions or reviews of kubectl-jq. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-08-24.
  • An Introduction to JQ
    10 projects | news.ycombinator.com | 24 Aug 2021
    Big fan of JQ. I like it more than the traditional UNIX suite of text manipulation commands, because I get closer to "querying" rather than just filtering. It has really made me rethink where I want "interacting with a computer" to go in the future -- less typing commands, more querying stuff.

    I have a few utilities involving JQ that I wrote.

    For structured logs, I have jlog. Pipe JSON structured logs into it, and it pretty-prints the logs. For example, time zones are converted to your local time, if you choose; or you can make the timestamps relative to each other, or now. It includes jq so that you can select relevant log lines, delete spammy fields, join fields together, etc. Basically, every time you run it, you get the logs YOU want to look at. https://github.com/jrockway/json-logs. Not to oversell it, but this is one of the few pieces of software I've written that passes the toothbrush test -- I use it twice a day, every day. All the documentation is in --help; I should really paste that into the Github readme.

    I am also a big fan of using JQ on Kubernetes objects. I know what I'm looking for, and it's often not in the default table view that kubectl prints. I integrated JQ into a kubectl extension, to save you "-o json | jq" and having to pick apart the v1.List that kubectl marshals objects into. https://github.com/jrockway/kubectl-jq. That one actually has documentation, but there is a fatal flaw -- it doesn't integrate with kubectl tab completion (limitation of k8s.io/cli-runtime), so it's not too good unless you already have a target in mind, or you're targeting everything of a particular resource type. This afternoon I wanted to see the image tag of every pod that wasn't terminated (some old Job runs exist in the namespace), and that's easy to do with JQ: `kubectl jq pods 'select(.status.containerStatuses[].state.terminated == null) | .spec.containers[].image'`. I have no idea how you'd do such a thing without JQ, probably just `kubectl describe pods | grep something` and do the filtering in your head. (The recipes in the kubectl-jq documentation are pretty useful. One time I had a Kubernetes secret that had a key set to a (base64-encoded) JSON file containing a base64-encoded piece of data I wanted. Easy to fix with jq; `.data.THING | @base64d | fromjson | .actualValue | @base64d`.

    JQ is something I definitely can't live without. But I will admit to sometimes preprocessing the input with grep, `select(.key|test("regex"))` is awfully verbose compared to "grep regex" ;)

What are some alternatives?

When comparing wsjq and kubectl-jq you can also consider the following projects:

rb - Turns Ruby into a versatile command line utility

dasel - Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package.

json-logs - A tool to pretty-print JSON logs, like those from zap or logrus.

fx - Terminal JSON viewer & processor

howto - Documenting useful things, lest I forget, and sharing is caring

jiq - jid on jq - interactive JSON query tool using jq expressions

gron - Make JSON greppable!

jid - json incremental digger

feedback - Public feedback discussions for: GitHub for Mobile, GitHub Discussions, GitHub Codespaces, GitHub Sponsors, GitHub Issues and more! [Moved to: https://github.com/github-community/community]