JSONPath
libnbd
JSONPath | libnbd | |
---|---|---|
1 | 4 | |
927 | - | |
1.5% | - | |
6.7 | - | |
9 days ago | - | |
JavaScript | ||
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.
JSONPath
-
jq 1.7 Released
Another great alternative is JSONPath[1] which unfortunately not as widely supported and known despite being brilliant!
It's inspired by XPath so it's very familiar instead of a complete new DSL. The killer feature imo is the recursive key lookup so you can write `people..address` and it'll find all "address" keys that descend from "people" anywhere in the JSON. It's by far my favorite parsing language for JSON and I wrote an introduction blog on how to use it in JSON dataset parsing [2] :)
1 - https://github.com/JSONPath-Plus/JSONPath
2 - https://scrapfly.io/blog/parse-json-jsonpath-python/
libnbd
- jq 1.7 Released
-
Fuzzing ping(8) and finding a 24 year old bug
Below is the small framework we use to fuzz a network client. It works by creating a Unix socket, forking, then having the client (under test) on one side of the socket and a small loop which reads the input file into the socket on the other side.
https://gitlab.com/nbdkit/libnbd/-/tree/master/fuzzing
-
The fastest way to copy a file
We did a bunch of benchmarking around this when writing nbdcopy (https://gitlab.com/nbdkit/libnbd/-/tree/master/copy) which can copy file to file as well as between local files and NBD servers. There was also the goal to avoid polluting the page cache, which depending on if you're going to use the file content immediately afterwards or not matters.
Anyway long story short, the best thing we found (for Linux) was Linus's own advice linked from here: https://stackoverflow.com/a/3756466
- A 100LOC C impl of memset, that is faster than glibc's
What are some alternatives?
gojq - Pure Go implementation of jq
nbdkit
jet - CLI to transform between JSON, EDN, YAML and Transit using Clojure
rsl - reserialise: lossy but versatile conversion between data serialisation formats
fq - jq for binary formats - tool, language and decoders for working with binary and text formats
jackson-jq - jq for Jackson Java JSON Processor
visidata - A terminal spreadsheet multitool for discovering and arranging data
memset_benchmark - This repository contains high-performance implementations of memset and memcpy in assembly.
yamlpath - YAML/JSON/EYAML/Compatible get/set/merge/validate/scan/convert/diff processors using powerful, intuitive, command-line friendly syntax.
safeclib - safec libc extension with all C11 Annex K functions
qemu