[0.10.0] - 2025-02-16 ([0.4.1] for rsonpath-syntax)
Features
-
Support for AVX512 SIMD.
- available on x86-64
-
Support for Neon SIMD.
- available on aarch64
-
MSRV bumped to 1.89.
- stable AVX512 since 1.89
-
Removed the
arbitraryfeature and theArbitraryimplementations fromrsonpath-syntax. -
Revised the list of Tier 1 targets that are continuously built and released.
- The following targets are now in CI and release:
aarch64-apple-darwinaarch64-pc-windows-msvc
- The following targets are no longer built or released:
i686-pc-windows-gnux86_64-apple-darwin
- The following targets are now in CI and release:
-
Added prebuilt binaries for a few MUSL-based Tier 2 targets. (#705)
- Binaries now released for:
aarch64-unknown-linux-musli686-unknown-linux-muslx86_64-unknown-linux-musl
- Binaries now released for:
Bug Fixes
-
Skipping inside arrays on comma-atomic (#757, #751)
- Tail skipping was not triggered when the item matching the unitary transition was an atomic value inside a list. For example, selecting
$[0]from a long list of integers would never skip, massively degrading performance. - Skipping was added to
handle_commain the same vein as it was inhandle_colonto enable this.
- Tail skipping was not triggered when the item matching the unitary transition was an atomic value inside a list. For example, selecting
-
Fix panic in specific cases of reclassification at end of file (#788)
- A particular combination of reclassification after tail-skipping at the very end of the file could cause a panic if the file-ending closing occurred directly after the skipped-to character.
-
Error messages blowing up on long inputs. (#842, #749)
- Previously, when displaying a ParseError every underlying SyntaxError would be printed with the full query input as context. If the density of errors in the input was high this would effectively cause a quadratic blowup during printing.
- It's probably unlikely inputs like this would be given by a user, but they do happen during fuzzing (when we're throwing long strings of essentially random characters at the parser) and could potentially be used as a DoS attack vector (intentionally supplying nonsensical large queries and forcing error messages to be sent back).
- Additionally fixed an invalid error message given when a side of a comparison operator was a non-singular query.
Reliability
-
Use github hosted ARM runners. (#718)
-
ARM SIMD is now tested in CI.
-
Fix serde proptests. (#742)
- Proptests in automaton serde were not properly guarding for arbitrary generated queries being too complex and exceeding the automaton size limit.
-
Add CodeQl for Rust scanning.
- We now require the analysis to pass before PR merges.
-
All fuzzers now correctly run on a nightly basis. (#749)
Dependencies
- Update
cfg-iffrom 1.0.0 to 1.0.4 - Update
clapfrom 4.5.23 to 4.5.58 - Update
color-eyrefrom 0.6.3 to 0.6.5 - Update
logfrom 0.4.22 to 0.4.29 - Update
memmap2from 0.9.5 to 0.9.9 - Update
nomfrom 7.1.3 to 8.0.0 - Update
owo-colorsfrom 4.1.0 to 4.2.3 - Update
rustflagsfrom 0.1.6 to 0.1.7 - Update
serdefrom 1.0.217 to 1.0.228 - Update
simple_loggerfrom 5.0.0 to 5.1.0 - Update
smallvecfrom 1.13.2 to 1.15.1 - Update
thiserrorfrom 2.0.9 to 2.0.18 - Update
unicode-widthfrom 0.2.0 to 0.2.2 - Update
vector-mapfrom 1.0.1 to 1.0.2 - Update
vergenfrom 9.0.2 to 9.1.0 - Update
vergen-git2from 1.0.2 to 9.1.0 - Remove
vergen-gitclfrom build dependencies
Documentation
- Fix old link to rsonbook in readme.
- Add a strict no-LLM policy to CONTRIBUTING.