tag:github.com,2008:https://github.com/rsonquery/rsonpath/releasesRelease notes from rsonpath2026-02-16T15:11:14Ztag:github.com,2008:Repository/512192888/v0.10.02026-02-16T15:54:35Zv0.10.0<h2>[0.10.0] - 2025-02-16 ([0.4.1] for <code>rsonpath-syntax</code>)</h2>
<h3>Features</h3>
<ul>
<li>
<p>Support for AVX512 SIMD.</p>
<ul>
<li>available on x86-64</li>
</ul>
</li>
<li>
<p>Support for Neon SIMD.</p>
<ul>
<li>available on aarch64</li>
</ul>
</li>
<li>
<p>MSRV bumped to 1.89.</p>
<ul>
<li>stable AVX512 since 1.89</li>
</ul>
</li>
<li>
<p>Removed the <code>arbitrary</code> feature and the <code>Arbitrary</code> implementations from <code>rsonpath-syntax</code>.</p>
</li>
<li>
<p>Revised the list of Tier 1 targets that are continuously built and released.</p>
<ul>
<li>The following targets are now in CI and release:
<ul>
<li><code>aarch64-apple-darwin</code></li>
<li><code>aarch64-pc-windows-msvc</code></li>
</ul>
</li>
<li>The following targets are no longer built or released:
<ul>
<li><code>i686-pc-windows-gnu</code></li>
<li><code>x86_64-apple-darwin</code></li>
</ul>
</li>
</ul>
</li>
<li>
<p>Added prebuilt binaries for a few MUSL-based Tier 2 targets. (<a href="https://github.com/V0ldek/rsonpath/issues/705" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/705/hovercard">#705</a>)</p>
<ul>
<li>Binaries now released for:
<ul>
<li><code>aarch64-unknown-linux-musl</code></li>
<li><code>i686-unknown-linux-musl</code></li>
<li><code>x86_64-unknown-linux-musl</code></li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p>Skipping inside arrays on comma-atomic (<a href="https://github.com/V0ldek/rsonpath/issues/757" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/757/hovercard">#757</a>, <a href="https://github.com/V0ldek/rsonpath/issues/751" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/751/hovercard">#751</a>)</p>
<ul>
<li>Tail skipping was not triggered when the item matching the unitary transition was an atomic value inside a list. For example, selecting <code>$[0]</code> from a long list of integers would never skip, massively degrading performance.</li>
<li>Skipping was added to <code>handle_comma</code> in the same vein as it was in <code>handle_colon</code> to enable this.</li>
</ul>
</li>
<li>
<p>Fix panic in specific cases of reclassification at end of file (<a href="https://github.com/V0ldek/rsonpath/issues/788" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/788/hovercard">#788</a>)</p>
<ul>
<li>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.</li>
</ul>
</li>
<li>
<p>Error messages blowing up on long inputs. (<a href="https://github.com/V0ldek/rsonpath/issues/842" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/842/hovercard">#842</a>, <a href="https://github.com/V0ldek/rsonpath/issues/749" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/749/hovercard">#749</a>)</p>
<ul>
<li>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.</li>
<li>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).</li>
<li>Additionally fixed an invalid error message given when a side of a comparison operator was a non-singular query.</li>
</ul>
</li>
</ul>
<h3>Reliability</h3>
<ul>
<li>
<p>Use github hosted ARM runners. (<a href="https://github.com/V0ldek/rsonpath/issues/718" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/718/hovercard">#718</a>)</p>
</li>
<li>
<p>ARM SIMD is now tested in CI.</p>
</li>
<li>
<p>Fix serde proptests. (<a href="https://github.com/V0ldek/rsonpath/issues/742" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/742/hovercard">#742</a>)</p>
<ul>
<li>Proptests in automaton serde were not properly guarding for arbitrary generated queries being too complex and exceeding the automaton size limit.</li>
</ul>
</li>
<li>
<p>Add CodeQl for Rust scanning.</p>
<ul>
<li>We now require the analysis to pass before PR merges.</li>
</ul>
</li>
<li>
<p>All fuzzers now correctly run on a nightly basis. (<a href="https://github.com/V0ldek/rsonpath/issues/749" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/749/hovercard">#749</a>)</p>
</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Update <code>cfg-if</code> from 1.0.0 to 1.0.4</li>
<li>Update <code>clap</code> from 4.5.23 to 4.5.58</li>
<li>Update <code>color-eyre</code> from 0.6.3 to 0.6.5</li>
<li>Update <code>log</code> from 0.4.22 to 0.4.29</li>
<li>Update <code>memmap2</code> from 0.9.5 to 0.9.9</li>
<li>Update <code>nom</code> from 7.1.3 to 8.0.0</li>
<li>Update <code>owo-colors</code> from 4.1.0 to 4.2.3</li>
<li>Update <code>rustflags</code> from 0.1.6 to 0.1.7</li>
<li>Update <code>serde</code> from 1.0.217 to 1.0.228</li>
<li>Update <code>simple_logger</code> from 5.0.0 to 5.1.0</li>
<li>Update <code>smallvec</code> from 1.13.2 to 1.15.1</li>
<li>Update <code>thiserror</code> from 2.0.9 to 2.0.18</li>
<li>Update <code>unicode-width</code> from 0.2.0 to 0.2.2</li>
<li>Update <code>vector-map</code> from 1.0.1 to 1.0.2</li>
<li>Update <code>vergen</code> from 9.0.2 to 9.1.0</li>
<li>Update <code>vergen-git2</code> from 1.0.2 to 9.1.0</li>
<li>Remove <code>vergen-gitcl</code> from build dependencies</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Fix old link to rsonbook in readme.</li>
<li>Add a strict no-LLM policy to CONTRIBUTING.</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/512192888/v0.9.42024-12-31T04:25:01Zv0.9.4<h2>[0.9.4] - 2024-12-31 ([0.4.0] for <code>rsonpath-syntax</code>)</h2>
<h3>Library</h3>
<ul>
<li>Serde support for <code>MainEngine</code> and <code>JsonPathQuery</code> in <code>rsonpath-syntax</code>.
<ul>
<li>Implemented <code>serde::Serialize</code> and <code>serde::Deserialize</code> for <code>MainEngine</code> in rsonpath-lib,<br>
and for <code>JsonPathQuery</code> and its consituent types in <code>rsonpath-syntax</code>.<br>
The <code>serde</code> dependency is guarded behind the optional <code>serde</code> feature.</li>
<li>The serialization format for <code>rsonpath-lib</code> is not stable, as the <code>Automaton</code><br>
is expected to evolve. Thus, serialization includes a version<br>
and deserialization will fail if the version disagrees.</li>
<li>The format in <code>rsonpath-syntax</code> is expected to be stable, but no guarantees before 1.0.0.</li>
<li>Also added snapshot tests for serialization based on <code>insta</code>.</li>
</ul>
</li>
<li>Added the <code>MainEngine::automaton</code> function to retrieve a reference to the compiled query.</li>
<li>Removed the <code>arbitrary</code> feature from <code>rsonpath-lib</code> as it didn't actually do anything anymore.</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li><code>serde</code> (1.0.217) is now an optional dependency for <code>rsonpath</code>, <code>rsonpath-lib</code>, and <code>rsonpath-syntax</code></li>
</ul>github-actions[bot]tag:github.com,2008:Repository/512192888/v0.9.32024-12-24T16:00:18Zv0.9.3<h2>[0.9.3] - 2024-12-24</h2>
<p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/azoyan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/azoyan">@azoyan</a> for contributions 🎉</p>
<h3>Library</h3>
<ul>
<li>Made <code>MainEngine</code> <code>Send</code> and <code>Sync</code>
<ul>
<li>Changed internal <code>Rc</code>s to <code>Arc</code>s in the automaton labels.</li>
<li>Added a <code>static_assert</code> to make sure <code>MainEngine</code> is <code>Send+Sync</code> forever.</li>
</ul>
</li>
<li>Added a <code>Debug</code> impl for <code>MainEngine</code>.</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/512192888/v0.9.22024-12-23T00:36:58Zv0.9.2<h2>[0.9.2] - 2024-12-22</h2>
<h3>Library</h3>
<ul>
<li>[<strong>breaking</strong>] Added <code>StringPattern</code> and made <code>Automaton</code> no longer borrow the query. (<a href="https://github.com/V0ldek/rsonpath/issues/117" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/117/hovercard">#117</a><a href="https://github.com/V0ldek/rsonpath/issues/613" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/613/hovercard">#613</a>)
<ul>
<li>The <code>Automaton</code> struct borrowed the source query, which also caused the Engine to carry the query's lifetime with it.<br>
The actual data being borrowed were the <code>JsonString</code> values for member transitions.<br>
In preparation for <a href="https://github.com/V0ldek/rsonpath/issues/117" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/117/hovercard">#117</a>we remove the borrowed <code>JsonString</code> and replace it<br>
with <code>StringPattern</code>. For UTF-8 the <code>StringPattern</code> will be a more complex struct that precomputes some stuff for efficient matching later.<br>
For now, it's a thin wrapper over a <code>JsonString</code>.</li>
<li>During construction we may create many transitions over the same pattern.<br>
To reduce the size of the automaton we cache the patterns and put them into an <code>Rc</code>.<br>
This may get optimised later to instead use some kind of inline storage, but it's unlike to actually matter.<br>
I ran the benchmarks and saw no measurable difference between the previous version and this one.</li>
<li>This is a breaking API change -- the <code>MainEngine</code> is now lifetimeless and the <code>Compiler</code> trait requires the<br>
returned engine to be lifetimeless.</li>
</ul>
</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Bump arbitrary from 1.3.1 to 1.4.1</li>
<li>Bump clap from 4.5.2 to 4.5.23</li>
<li>Bump color-eyre from 0.6.2 to 0.6.3</li>
<li>Bump log from 0.4.21 to 0.4.22</li>
<li>Bump memmap2 from 0.9.4 to 0.9.5</li>
<li>Bump simple_logger from 4.3.3 to 5.0.0</li>
<li>Bump smallvec from 1.13.1 to 1.13.2</li>
<li>Bump thiserror from 1.0.58 to 2.0.9 (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2754652311" data-permission-text="Title is private" data-url="https://github.com/rsonquery/rsonpath/issues/617" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/617/hovercard" href="https://github.com/rsonquery/rsonpath/pull/617">#617</a>). (<a href="https://github.com/V0ldek/rsonpath/issues/617" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/617/hovercard">#617</a>)</li>
<li>Remove <code>nom</code> as a direct dependency of <code>rsonpath-lib</code></li>
</ul>github-actions[bot]tag:github.com,2008:Repository/512192888/v0.9.12024-04-03T18:23:23Zv0.9.1<h2>[0.9.1] - 2024-04-03</h2>
<h3>Bug Fixes</h3>
<ul>
<li>Child slice selectors only selecting first matching index (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2221690794" data-permission-text="Title is private" data-url="https://github.com/rsonquery/rsonpath/issues/499" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/499/hovercard" href="https://github.com/rsonquery/rsonpath/pull/499">#499</a>). (<a href="https://github.com/V0ldek/rsonpath/issues/499" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/499/hovercard">#499</a>)
<ul>
<li>Fixed a bug where the compiler would erroneously mark states<br>
with a single slice transition as unitary, even though such<br>
transitions could match more than one index.</li>
</ul>
</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/512192888/v0.9.02024-03-28T18:34:47Zv0.9.0<h2>[0.9.0] - 2024-03-28</h2>
<h3>Features</h3>
<ul>
<li>Array slice selector. (<a href="https://github.com/V0ldek/rsonpath/issues/152" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/152/hovercard">#152</a>)
<ul>
<li>Simple slicing: forward step and positive bounds.<br>
Includes an overhaul to how array transitions are compiled.</li>
</ul>
</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Improve performance of the index selector. (<a href="https://github.com/V0ldek/rsonpath/issues/138" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/138/hovercard">#138</a>)
<ul>
<li>Added more structure and metadata to the automaton,<br>
improving perf of all queries in general (~6% thpt) and<br>
array-index queries in particular (~12% thpt).</li>
</ul>
</li>
</ul>
<h3>Reliability</h3>
<ul>
<li>Run JSONPath Compliance Test Suite on basic queries.
<ul>
<li>CTS is now run in CI on queries that the engine supports.</li>
</ul>
</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Bump clap from 4.5.1 to 4.5.2</li>
<li>Bump thiserror from 1.0.57 to 1.0.58</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/512192888/v0.8.72024-02-29T20:25:28Zv0.8.7<h2>[0.8.7] - 2024-02-29</h2>
<h3>Features</h3>
<ul>
<li>[<strong>breaking</strong>] Parsing filter expressions. (<a href="https://github.com/V0ldek/rsonpath/issues/154" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/154/hovercard">#154</a>)
<ul>
<li>This is mainly an <code>rsonpath-syntax</code> change – the selectors are parsed,<br>
but <code>rq</code> will give you an unsupported error and a link to <a href="https://github.com/V0ldek/rsonpath/issues/154" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/154/hovercard">#154</a><br>
if you put them in a query.</li>
</ul>
</li>
</ul>
<h3>Reliability</h3>
<ul>
<li>Add msrv verify as ci check. (<a href="https://github.com/V0ldek/rsonpath/issues/480" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/480/hovercard">#480</a>)
<ul>
<li>The MSRV got unknowingly bumped before, with this CI check we will avoid it in the future.</li>
</ul>
</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Bump clap from 4.4.16 to 4.5.1</li>
<li>Bump eyre from 0.6.11 to 0.6.12</li>
<li>Bump log from 0.4.20 to 0.4.21</li>
<li>Bump memmap2 from 0.9.3 to 0.9.4</li>
<li>Bump smallvec from 1.12.0 to 1.13.1</li>
<li>Bump thiserror from 1.0.56 to 1.0.57</li>
<li>Bump vergen from 8.2.7 to 8.3.1</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/512192888/v0.8.62024-01-15T15:06:15Zv0.8.6<h2>[0.8.6] - 2024-01-15</h2>
<h3>Features</h3>
<ul>
<li>[<strong>breaking</strong>] Parsing <code>Slice</code> selectors.
<ul>
<li>This is mainly an <code>rsonpath-syntax</code> change – the selectors are parsed,<br>
but <code>rq</code> will give you an unsupported error and a link to <a href="https://github.com/V0ldek/rsonpath/issues/152" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/152/hovercard">#152</a><br>
if you put them in a query.</li>
</ul>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>
<p>Bug in <code>-c</code> graph display.</p>
<ul>
<li>dot format was temporarily broken by doubling double quotes in labels</li>
</ul>
</li>
<li>
<p>U+001A-U+001F in name selectors.</p>
<ul>
<li>Characters U+001A through U+001F were erroneously accepted unescaped.<br>
This is now a hard error.</li>
</ul>
</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Bump clap from 4.4.14 to 4.4.16</li>
<li>Bump vergen from 8.2.6 to 8.2.7.</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/512192888/v0.8.52024-01-10T16:39:58Zv0.8.5<h2>[0.8.5] - 2024-01-10</h2>
<p>Nice parsing errors 🪄</p>
<p><a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/20441980/295638990-38bd30b0-6c7c-422f-81e8-72bbae972a04.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQxNTE4NDQsIm5iZiI6MTc3NDE1MTU0NCwicGF0aCI6Ii8yMDQ0MTk4MC8yOTU2Mzg5OTAtMzhiZDMwYjAtNmM3Yy00MjJmLTgxZTgtNzJiYmFlOTcyYTA0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzIyVDAzNTIyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJlYWU4ZGFkM2JiMjc4OTk0NTI1MDQzYjM4ZjY4ZjgzYjI1ZjcyZjQ1MjkzYWZjNWVhNTNmZTc3MGZhOTMxMDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.oPiJMy1UqirDEQ1IES7V-K31s0JjMY899mLRQzDEQGo"><img src="https://private-user-images.githubusercontent.com/20441980/295638990-38bd30b0-6c7c-422f-81e8-72bbae972a04.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzQxNTE4NDQsIm5iZiI6MTc3NDE1MTU0NCwicGF0aCI6Ii8yMDQ0MTk4MC8yOTU2Mzg5OTAtMzhiZDMwYjAtNmM3Yy00MjJmLTgxZTgtNzJiYmFlOTcyYTA0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzIyVDAzNTIyNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJlYWU4ZGFkM2JiMjc4OTk0NTI1MDQzYjM4ZjY4ZjgzYjI1ZjcyZjQ1MjkzYWZjNWVhNTNmZTc3MGZhOTMxMDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.oPiJMy1UqirDEQ1IES7V-K31s0JjMY899mLRQzDEQGo" alt="image" content-type-secured-asset="image/png" style="max-width: 100%;"></a></p>
<h3>Features</h3>
<ul>
<li>[<strong>breaking</strong>] Separate <code>rsonpath-syntax</code>.
<ul>
<li>The parsing logic and query AST are now moved to a separately published subcrate.</li>
<li>The crate is versioned separately. Changes to it that do not affect <code>rq</code> will be documented<br>
in its separate changelog. See the <code>crates/rsonpath-syntax</code> subdirectory.</li>
</ul>
</li>
<li>[<strong>breaking</strong>] Rework numeric types in the query parser.
<ul>
<li>renamed <code>NonNegativeArrayIndex</code> to <code>JsonUInt</code></li>
<li>added the <code>JsonInt</code> and <code>JsonNonZeroUInt</code> types</li>
</ul>
</li>
<li>Fancy error handling in the parser.</li>
</ul>
<h3>Reliability</h3>
<ul>
<li>Use self-hosted runner for ARM.
<ul>
<li>We now have a self-hosted runner to continuously test rsonpath on ARM64!</li>
</ul>
</li>
<li>Set restrictive egress rules on runners.
<ul>
<li>Following up on StepSecurity upgrades, runners now block egress<br>
traffic by default and allow only specific trusted endpoints.</li>
</ul>
</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Bump arbitrary from 1.3.0 to 1.3.2.</li>
<li>Bump clap from 4.4.7 to 4.4.14.</li>
<li>Bump eyre from 0.6.8 to 0.6.11.</li>
<li>Bump memmap2 from 0.9.0 to 0..3.</li>
<li>Bump simple_logger from 4.2.0 to 4.3.3.</li>
<li>Bump smallvec from 1.11.1 to 1.11.2.</li>
<li>Bump thiserror from 1.0.49 to 1.0.56.</li>
<li>Bump vergen from 8.2.5 to 8.2.6.</li>
</ul>github-actions[bot]tag:github.com,2008:Repository/512192888/v0.8.42023-10-30T22:11:53Zv0.8.4<h2>[0.8.4] - 2023-10-30</h2>
<h3>Features</h3>
<ul>
<li>[<strong>breaking</strong>] Refactor the <code>Input</code> implementors with automatic padding (#<a href="https://github.com/V0ldek/rsonpath/issues/276" data-hovercard-type="issue" data-hovercard-url="/rsonquery/rsonpath/issues/276/hovercard">276</a>).
<ul>
<li>Padding and alignment is now handled automatically by the input types,<br>
allowing them to work safely without copying the entire input. The overhead is now<br>
limited to the padding, which is at most 256 bytes in total.</li>
<li><a href="https://docs.rs/rsonpath-lib/0.8.4/rsonpath/input/borrowed/struct.BorrowedBytes.html" rel="nofollow"><code>BorrowedBytes</code></a> is now safe to construct.</li>
<li><a href="https://docs.rs/rsonpath-lib/0.8.4/rsonpath/input/owned/struct.OwnedBytes.html" rel="nofollow"><code>OwnedBytes</code></a> no longer copies<br>
the entire source on construction.</li>
</ul>
</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Atomic values getting invalid spans (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1955675591" data-permission-text="Title is private" data-url="https://github.com/rsonquery/rsonpath/issues/327" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/327/hovercard" href="https://github.com/rsonquery/rsonpath/pull/327">#327</a>). (<a href="https://github.com/V0ldek/rsonpath/issues/327" data-hovercard-type="pull_request" data-hovercard-url="/rsonquery/rsonpath/pull/327/hovercard">#327</a>)
<ul>
<li>Fixed an issue where atomic values would be matched with all<br>
trailing characters up until the next closing.</li>
</ul>
</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Improve SIMD codegen.
<ul>
<li>Improved the way we dispatch to SIMD-intensive functions.<br>
This results in slightly larger binaries, but <em>massive</em> speedups –<br>
throughput increase of 5, 10, 20, or in case of <code>google_map::travel_modes/rsonpath_direct_count</code><br>
59 (fifty-nine) percent.</li>
</ul>
</li>
</ul>
<h3>Reliability</h3>
<ul>
<li>Harden GitHub Actions.
<ul>
<li>We now use the StepSecurity <a href="https://github.com/step-security/harden-runner">harden-runner</a> in audit mode<br>
to test a more secure approach to GitHub CI.</li>
</ul>
</li>
<li>End to end test refactor.
<ul>
<li>tests are now generated into many separate files instead of one gigantic file.<br>
This improves compilation times, responsiveness of rust-analyzer,<br>
and in general makes the tooling happier.</li>
</ul>
</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>Bump arbitrary from 1.3.0 to 1.3.2.</li>
<li>Bump clap from 4.4.6 to 4.4.7.</li>
<li>Bump thiserror from 1.0.49 to 1.0.50.</li>
</ul>github-actions[bot]