jaq
roxmltree
Our great sponsors
jaq | roxmltree | |
---|---|---|
24 | 4 | |
2,436 | 391 | |
- | - | |
9.6 | 7.3 | |
1 day ago | 2 months ago | |
Rust | Rust | |
MIT License | Apache License 2.0 |
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.
jaq
-
Jaq – A jq clone focused on correctness, speed, and simplicity
https://github.com/01mf02/jaq/blob/main/Cargo.lock
That's a lot of dependencies..
-
Interactive Examples for Learning Jq
Thanks for the jqjq shoutout! :) i'm quite sure jq is turing complete, jq (and jqjq!) can implement brainfuck https://github.com/01mf02/jaq/blob/main/examples/bf.jq
-
This is a very old theme, solved by Pike and Kernigan since 1984, in section 5.5 (Replacing a file: overwrite), page 155 in the book
/uj Because of this post, I have learned I could have been using jaq instead of jq.
-
A new major version of jql has been released
There's also jaq which is written in Rust, aims for compatibility with jq (except some specific features), and boasts better performance.
-
Miller: Like Awk, sed, cut, join, and sort for CSV, TSV, and tabular JSON
I've been getting a lot of mileage out of https://github.com/itchyny/gojq#readme recently due to two things: its vastly superior error messages and the (regrettably verbose) `--yaml-input` option
I also have https://github.com/01mf02/jaq#readme installed but just haven't needed it
-
why GNU grep is fast
For lightly structured data, nushell (still pre-release) or jq/jaq are better.
-
Surprises in the Rust JSON Ecosystem
Just yesterday, I started work on replacing serde_json in my project jaq by hifijson, which cut JSON loading time in half! The downside of hifijson is that documentation is still TODO. But I intend to work on this as soon as I have a prototype of jaq with hifijson working.
-
Jq Internals: Backtracking
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
roxmltree
-
What are the scenarios where "Rewrite it in Rust" didn't meet your expectations or couldn't be successfully implemented?
This is exactly what I needed when implementing xml-mut :D I have used roxmltree instead and manipulated text directly. will try to rewrite it using Xot.
-
Surprises in the Rust JSON Ecosystem
In regards to the benchmarks, It makes sense to measure serializing/deserializing for parser crates. but since we are talking about dom implementations, metrics like traversal/iteration speed or insert/modification performance would be useful. a good example is roxmltree crate (readonly xml dom) which benches traversal/iteration performance and shows that by only focusing on readonly usecases, it gains substantial performance gains.
-
What are some less popular but well-made crates you'd like others to know about?
For xml parsing, I find https://github.com/RazrFalcon/roxmltree as a really good crate. It’s fast, light, and well documented/maintained. I have so much respect for the maintainer’s approach to merging PRs and the way they consider what’s important for the crate
-
fast-float - a super-fast float parser in Rust
I understand. But I've also wrote enough parsers and performance sensitive code in Rust (ttf-parser, tiny-skia, roxmltree). And in my experience, unsafe is not needed in 99% of the cases. Even something as performance sensitive as tiny-skia is unsafe-free (with some nuances).
What are some alternatives?
jql - A JSON Query Language CLI tool
partiql-lang-rust - PartiQL libraries and tools in Rust.
fast-float-rust - Super-fast float parser in Rust (now part of Rust core)
json - Strongly typed JSON library for Rust
gojq - Pure Go implementation of jq
log4rs - A highly configurable logging framework for Rust
quick-xml - Rust high performance xml reader and writer
jq - Command-line JSON processor
Clipper2 - Polygon Clipping and Offsetting - C++, C# and Delphi
rust - Empowering everyone to build reliable and efficient software.
utt - utt is the universal text transformer
jqp - A TUI playground to experiment with jq