Kaitai Struct
jq
Kaitai Struct | jq | |
---|---|---|
44 | 55 | |
3,844 | 29,146 | |
1.2% | 1.2% | |
7.5 | 9.3 | |
25 days ago | 2 days ago | |
Shell | C | |
GPL-3.0-or-later | GNU General Public License v3.0 or later |
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.
Kaitai Struct
- Reverse-engineering an encrypted IoT protocol
-
Parsing an Undocumented File Format
- ImHex [2], which has a pattern language [3] which allows parsing, and it seems more powerful than what Kaitai offers. I stumbled upon some limitations with it but it was still useful.
[1]: https://kaitai.io/
- Kaitai Struct – a declarative language used to describe binary data structures
-
HTTPie Desktop: cross-platform API testing client for humans
Beautiful. Didn't know something like this exists. Reminds me of Katai[0]
[0]. https://kaitai.io/
-
Hacking the LG Monitor's EDID
An EDID override like this would be helpful for macOS as well, where the monitors swapping around after standby is a real annoyance [0] [1]
EDID rewrites are 99% of the time blocked by the monitor firmware: https://notes.alinpanaitiu.com/Decoding-monitor-EDID-on-macO...
By the way, one helpful tool that helped me navigate the EDID dump was Kaitai Struct [2]. It shows a side by side view with the hex view and the EDID structure, and it highlights the hex values in real time as you navigate the structure. Unfortunately [3] it doesn't support the extension blocks that the author needs.
[0] https://notes.alinpanaitiu.com/Weird-monitor-bugs
[1] https://forums.macrumors.com/threads/external-displays-swapp...
[2] https://kaitai.io/
[3] https://github.com/kaitai-io/edid.ksy
- Kaitai Struct: new way to develop parsers for binary structures
-
Fq: Jq for Binary Formats
Kaitai Struct might be a good choice for that: https://kaitai.io/
-
Ingesting, parsing and making sense of device log data
For binary log format, there's the excellent Kaitai Struct frameworks, that make it very easy to generate parsers from a declarative schema
-
What is this tool? More info in comments
kaitai
-
Visual Programming with Elixir: Learning to Write Binary Parsers (2019)
https://kaitai.io/
Worth a look if you are writing binary parsers.
jq
-
Data Science at the Command Line, 2nd Edition (2021)
Thanks, if anyone else is interested there is an explanation of this feature here: https://subtxt.in/library-data/2016/03/28/json_stream_jq And: https://github.com/jqlang/jq/wiki/FAQ#streaming-json-parser
The last time I tried, I think the reason I gave up on JQ for large inputs was that the throughput would max out at 7mb/s whereas the same thing with spark SQL on the same hardware (MacBook) would max out at 250mb/s. So I started looking into using other solutions for big data while I use jq in parallel for small data in multiple files.
I will test it out again cause this was 4-5 years ago when I last tested it, but I believe jaq is still preferred for large inputs. Still I prefer for big data to use Spark/Polars/clickhouse etc.
-
Bytecode VMs in Surprising Places
Looks like you are correct https://github.com/jqlang/jq/blob/ed8f7154f4e3e0a8b01e6778de...
- Frawk: An efficient Awk-like programming language. (2021)
- Dehydrated: Letsencrypt/acme client implemented as a shell-script
-
I turned my open-source project into a full-time business
I think like you. But also, one does not necessarily know beforehand that they will want to make money.
Like a project could be born out of pure generosity, but after the happy initial phase the project might get too heavy on the maintenance requirements, causing the author to approach burnout, and possibly deciding that they want to make money to continue pulling the cart forward.
However, here's something I do think: if you create something as Open Source, it should be out of a mentality of goodwill and for the greater good, regardless of how it ends up being used. OSS licenses do mean this with their terms. If you later get tired or burned out, you should just retire and allow the community to keep taking care of it. Just like it happened with the Jq tool [1].
[1]: https://github.com/jqlang/jq/releases/tag/jq-1.7
-
How to load JSON data in PostgreSQL with the the COPY command
In this blog we'll see how to upload the JSON directly using PostgreSQL COPY command and using an utility called jq!
-
How to Recover Locally Deleted Files From Github
And we can then make it easier to find the commit by filtering the response with jq.
-
Essential Command Line Tools for Developers
Official Documentation: jqlang.github.io/jq
-
Command line tools I always install on Ubuntu servers
To handle JSON files and JSON outputs in a script or format and highlight it, jq can be very handy. Many command line tools provide a json output, so you don't have to write a custom parser for a table a list in a terminal. Instead of that, you can use jq to get a specific value from the output or even modify the output. For more information, you can visit https://jqlang.github.io/jq/
-
How I use Nix in my Elm projects
In some projects I've wanted to use HTTPie to test APIs and jq to work with some JSON data. Nix has been really helpful in managing those dependencies that I can't easily get from npm.
What are some alternatives?
Protobuf - Protocol Buffers - Google's data interchange format
yq - Command-line YAML, XML, TOML processor - jq wrapper for YAML/XML/TOML documents
csvkit - A suite of utilities for converting to and working with CSV, the king of tabular file formats.
jp - Validate and transform JSON with Bash
Camelot - A Python library to extract tabular data from PDFs
gojq - Pure Go implementation of jq
tablib - Python Module for Tabular Datasets in XLS, CSV, JSON, YAML, &c.
Jolt - JSON to JSON transformation library written in Java.
PDFMiner - Python PDF Parser (Not actively maintained). Check out pdfminer.six.
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.
PyYAML
jmespath.py - JMESPath is a query language for JSON.