diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
index 9c5b85b..a428f7d 100644
--- a/.github/workflows/format.yml
+++ b/.github/workflows/format.yml
@@ -46,7 +46,6 @@ jobs:
if: ${{ needs.discover.result == 'success' }}
uses: Stillpoint-Software/shared-workflows/.github/workflows/format.yml@main
with:
- dotnet_version: "10.0.x"
branch: ${{ needs.discover.outputs.branch_name }}
secrets: inherit
diff --git a/Directory.Build.props b/Directory.Build.props
index 7c058ba..5fe723a 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -2,15 +2,10 @@
-
-
+
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
@@ -45,4 +40,9 @@
PackagePath="\"
Link="LICENSE" />
+
+
+ enable
+ net10.0
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 0000000..5a1423a
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,32 @@
+
+
+ true
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Hyperbee.Json.slnx b/Hyperbee.Json.slnx
index 8f8f785..bc5afd2 100644
--- a/Hyperbee.Json.slnx
+++ b/Hyperbee.Json.slnx
@@ -1,6 +1,7 @@
+
diff --git a/README.md b/README.md
index dbdf95a..de2bb9d 100644
--- a/README.md
+++ b/README.md
@@ -95,207 +95,209 @@ Here is a performance comparison of various JSONPath queries on the standard boo
}
}
```
-| Method | Mean | Error | StdDev | Gen0 | Gen1 | Allocated |
-|------------------------ | ----------:|----------:|----------:|-------:|-------:|----------:|
-|`$..[?(@.price < 10)]`
-| JsonCraft.JsonElement | 3.049 us | 0.7626 us | 0.0418 us | 0.2899 | - | 3.59 KB |
-| Hyperbee.JsonElement | 5.400 us | 0.5197 us | 0.0285 us | 1.2894 | 0.0076 | 15.84 KB |
-| Hyperbee.JsonNode | 5.824 us | 1.8214 us | 0.0998 us | 1.4954 | 0.0305 | 18.38 KB |
-| JsonCons.JsonElement | 5.955 us | 2.4616 us | 0.1349 us | 1.0376 | 0.0076 | 12.73 KB |
-| Newtonsoft.JObject | 8.838 us | 1.3040 us | 0.0715 us | 2.1057 | 0.0763 | 25.86 KB |
-| JsonEverything.JsonNode | 19.543 us | 9.1216 us | 0.5000 us | 3.9063 | 0.1221 | 48.15 KB |
-| | | | | | | |
-|`$..['bicycle','price']`
-| JsonCraft.JsonElement | 2.451 us | 0.3691 us | 0.0202 us | 0.3242 | - | 4.01 KB |
-| Hyperbee.JsonElement | 2.689 us | 0.6920 us | 0.0379 us | 0.4158 | - | 5.12 KB |
-| JsonCons.JsonElement | 3.217 us | 0.4797 us | 0.0263 us | 0.5798 | 0.0038 | 7.13 KB |
-| Hyperbee.JsonNode | 3.435 us | 0.8745 us | 0.0479 us | 0.7210 | 0.0114 | 8.84 KB |
-| Newtonsoft.JObject | 5.548 us | 1.7475 us | 0.0958 us | 1.1826 | 0.0458 | 14.55 KB |
-| JsonEverything.JsonNode | 12.999 us | 0.5857 us | 0.0321 us | 2.3193 | 0.0610 | 28.5 KB |
-| | | | | | | |
-|`$..`
-| JsonCraft.JsonElement | 2.110 us | 0.2534 us | 0.0139 us | 0.2327 | - | 2.88 KB |
-| Hyperbee.JsonElement | 2.478 us | 0.3201 us | 0.0175 us | 0.5226 | 0.0038 | 6.45 KB |
-| Hyperbee.JsonNode | 3.434 us | 0.6438 us | 0.0353 us | 0.7782 | 0.0153 | 9.54 KB |
-| JsonCons.JsonElement | 3.450 us | 0.5528 us | 0.0303 us | 0.6866 | 0.0038 | 8.45 KB |
-| Newtonsoft.JObject | 5.217 us | 0.4099 us | 0.0225 us | 1.1520 | 0.0458 | 14.19 KB |
-| JsonEverything.JsonNode | 17.330 us | 1.5400 us | 0.0844 us | 2.7466 | 0.0610 | 33.97 KB |
-| | | | | | | |
+
+
+| Method | Mean | Error | StdDev | Gen0 | Gen1 | Allocated |
+|------------------------ | ----------:|-----------:|----------:|-------:|-------:|----------:|
+| `$..[?(@.price < 10)]`
+| JsonCraft.JsonElement | 2.957 us | 1.1397 us | 0.0625 us | 0.2899 | - | 3.59 KB |
+| Hyperbee.JsonElement | 5.221 us | 0.8505 us | 0.0466 us | 1.2894 | 0.0076 | 15.84 KB |
+| JsonCons.JsonElement | 5.518 us | 1.3367 us | 0.0733 us | 1.0376 | 0.0076 | 12.73 KB |
+| Hyperbee.JsonNode | 5.915 us | 0.8714 us | 0.0478 us | 1.4954 | 0.0153 | 18.38 KB |
+| Newtonsoft.JObject | 8.009 us | 1.7612 us | 0.0965 us | 2.1057 | 0.0763 | 25.86 KB |
+| JsonEverything.JsonNode | 17.850 us | 12.0238 us | 0.6591 us | 3.9063 | 0.1221 | 48.15 KB |
+| | | | | | | |
+| `$..['bicycle','price']`
+| JsonCraft.JsonElement | 2.309 us | 0.2498 us | 0.0137 us | 0.3242 | - | 4.01 KB |
+| Hyperbee.JsonElement | 2.701 us | 1.0824 us | 0.0593 us | 0.4158 | - | 5.12 KB |
+| JsonCons.JsonElement | 3.058 us | 0.3820 us | 0.0209 us | 0.5760 | 0.0038 | 7.09 KB |
+| Hyperbee.JsonNode | 3.626 us | 1.3209 us | 0.0724 us | 0.7210 | 0.0114 | 8.84 KB |
+| Newtonsoft.JObject | 4.990 us | 1.5961 us | 0.0875 us | 1.1826 | 0.0458 | 14.55 KB |
+| JsonEverything.JsonNode | 12.183 us | 2.7932 us | 0.1531 us | 2.3193 | 0.0610 | 28.5 KB |
+| | | | | | | |
+| `$..*`
+| JsonCraft.JsonElement | 2.023 us | 0.4743 us | 0.0260 us | 0.2327 | - | 2.88 KB |
+| Hyperbee.JsonElement | 2.390 us | 0.7132 us | 0.0391 us | 0.5226 | 0.0038 | 6.45 KB |
+| JsonCons.JsonElement | 3.239 us | 0.8771 us | 0.0481 us | 0.6866 | 0.0038 | 8.45 KB |
+| Hyperbee.JsonNode | 3.864 us | 2.6714 us | 0.1464 us | 0.7629 | - | 9.54 KB |
+| Newtonsoft.JObject | 4.864 us | 0.7073 us | 0.0388 us | 1.1520 | 0.0458 | 14.19 KB |
+| JsonEverything.JsonNode | 17.367 us | 10.7988 us | 0.5919 us | 2.7466 | 0.0610 | 33.97 KB |
+| | | | | | | |
|`$..author`
-| JsonCraft.JsonElement | 2.352 us | 0.4147 us | 0.0227 us | 0.2327 | - | 2.88 KB |
-| Hyperbee.JsonElement | 2.359 us | 0.2998 us | 0.0164 us | 0.4158 | - | 5.1 KB |
-| JsonCons.JsonElement | 2.826 us | 1.7249 us | 0.0945 us | 0.4463 | 0.0038 | 5.47 KB |
-| Hyperbee.JsonNode | 3.290 us | 2.1900 us | 0.1200 us | 0.7019 | 0.0038 | 8.64 KB |
-| Newtonsoft.JObject | 5.246 us | 0.8047 us | 0.0441 us | 1.1520 | 0.0381 | 14.2 KB |
-| JsonEverything.JsonNode | 12.429 us | 6.1835 us | 0.3389 us | 2.1057 | 0.0305 | 26.1 KB |
-| | | | | | | |
-|`$..book[?@.isbn]`
-| Hyperbee.JsonElement | 2.883 us | 1.0678 us | 0.0585 us | 0.4997 | 0.0038 | 6.14 KB |
-| JsonCons.JsonElement | 3.362 us | 0.8878 us | 0.0487 us | 0.5836 | 0.0038 | 7.16 KB |
-| Hyperbee.JsonNode | 3.965 us | 3.7942 us | 0.2080 us | 0.7858 | 0.0153 | 9.64 KB |
-| JsonEverything.JsonNode | 13.766 us | 1.2953 us | 0.0710 us | 2.4414 | 0.0610 | 29.98 KB |
-| JsonCraft.JsonElement | NA | NA | NA | NA | NA | NA |
-| Newtonsoft.JObject | NA | NA | NA | NA | NA | NA |
-| | | | | | | |
-|`$..book[?@.price == 8.99 && @.category == 'fiction']`
-| Hyperbee.JsonElement | 3.708 us | 1.8637 us | 0.1022 us | 0.6752 | 0.0038 | 8.28 KB |
-| Hyperbee.JsonNode | 4.746 us | 0.9875 us | 0.0541 us | 0.9460 | - | 11.91 KB |
-| JsonCons.JsonElement | 4.845 us | 1.3375 us | 0.0733 us | 0.6866 | - | 8.48 KB |
-| JsonEverything.JsonNode | 17.256 us | 1.0914 us | 0.0598 us | 3.1738 | 0.0610 | 39.27 KB |
-| JsonCraft.JsonElement | NA | NA | NA | NA | NA | NA |
-| Newtonsoft.JObject | NA | NA | NA | NA | NA | NA |
-| | | | | | | |
-|`$..book[0,1]`
-| JsonCraft.JsonElement | 2.345 us | 0.1935 us | 0.0106 us | 0.2518 | - | 3.09 KB |
-| Hyperbee.JsonElement | 2.417 us | 0.0175 us | 0.0010 us | 0.4158 | - | 5.1 KB |
-| JsonCons.JsonElement | 3.005 us | 0.9922 us | 0.0544 us | 0.4959 | 0.0038 | 6.1 KB |
-| Hyperbee.JsonNode | 3.163 us | 1.0620 us | 0.0582 us | 0.7019 | - | 8.64 KB |
-| Newtonsoft.JObject | 5.089 us | 0.8914 us | 0.0489 us | 1.1749 | 0.0458 | 14.45 KB |
-| JsonEverything.JsonNode | 12.339 us | 0.9570 us | 0.0525 us | 2.1362 | 0.0610 | 26.41 KB |
-| | | | | | | |
-|`$..book[0]`
-| JsonCraft.JsonElement | 2.241 us | 0.1554 us | 0.0085 us | 0.2441 | - | 3 KB |
-| Hyperbee.JsonElement | 2.271 us | 1.0724 us | 0.0588 us | 0.4158 | - | 5.1 KB |
-| JsonCons.JsonElement | 2.708 us | 0.8340 us | 0.0457 us | 0.4501 | - | 5.55 KB |
-| Hyperbee.JsonNode | 3.528 us | 0.2841 us | 0.0156 us | 0.7019 | 0.0038 | 8.64 KB |
-| Newtonsoft.JObject | 5.005 us | 0.3486 us | 0.0191 us | 1.1673 | 0.0381 | 14.33 KB |
-| JsonEverything.JsonNode | 11.781 us | 1.7173 us | 0.0941 us | 2.1057 | 0.0610 | 26.02 KB |
-| | | | | | | |
-|`$.store..price`
-| Hyperbee.JsonElement | 2.293 us | 0.4706 us | 0.0258 us | 0.3853 | - | 4.73 KB |
-| JsonCraft.JsonElement | 2.363 us | 1.0577 us | 0.0580 us | 0.2518 | - | 3.13 KB |
-| JsonCons.JsonElement | 2.720 us | 2.0514 us | 0.1124 us | 0.4539 | - | 5.57 KB |
-| Hyperbee.JsonNode | 3.181 us | 0.5370 us | 0.0294 us | 0.6828 | - | 8.38 KB |
-| Newtonsoft.JObject | 5.083 us | 0.4737 us | 0.0260 us | 1.1673 | 0.0381 | 14.34 KB |
-| JsonEverything.JsonNode | 13.102 us | 2.1212 us | 0.1163 us | 2.1667 | 0.0610 | 26.63 KB |
-| | | | | | | |
-|`$.store.*`
-| JsonCraft.JsonElement | 1.561 us | 0.1662 us | 0.0091 us | 0.2022 | - | 2.49 KB |
-| Hyperbee.JsonElement | 1.602 us | 0.6889 us | 0.0378 us | 0.2289 | - | 2.81 KB |
-| JsonCons.JsonElement | 1.693 us | 0.7460 us | 0.0409 us | 0.2651 | - | 3.27 KB |
-| Hyperbee.JsonNode | 1.784 us | 0.6002 us | 0.0329 us | 0.2365 | 0.0019 | 2.9 KB |
-| JsonEverything.JsonNode | 2.395 us | 0.3007 us | 0.0165 us | 0.3891 | - | 4.8 KB |
-| Newtonsoft.JObject | 4.664 us | 0.6593 us | 0.0361 us | 1.1749 | 0.0458 | 14.43 KB |
-| | | | | | | |
-|`$.store.bicycle.color`
-| Hyperbee.JsonElement | 1.454 us | 0.6877 us | 0.0377 us | 0.1755 | - | 2.17 KB |
-| JsonCraft.JsonElement | 1.585 us | 0.7476 us | 0.0410 us | 0.1984 | - | 2.45 KB |
-| Hyperbee.JsonNode | 1.695 us | 0.7429 us | 0.0407 us | 0.2346 | 0.0019 | 2.88 KB |
-| JsonCons.JsonElement | 1.816 us | 1.7814 us | 0.0976 us | 0.2632 | - | 3.23 KB |
-| JsonEverything.JsonNode | 2.892 us | 0.3155 us | 0.0173 us | 0.4654 | 0.0038 | 5.74 KB |
-| Newtonsoft.JObject | 4.582 us | 0.7337 us | 0.0402 us | 1.1826 | 0.0381 | 14.49 KB |
-| | | | | | | |
-|`$.store.book[-1:]`
-| Hyperbee.JsonElement | 1.579 us | 0.5378 us | 0.0295 us | 0.1945 | - | 2.41 KB |
-| JsonCraft.JsonElement | 1.622 us | 0.1762 us | 0.0097 us | 0.2098 | - | 2.58 KB |
-| Hyperbee.JsonNode | 1.809 us | 0.3378 us | 0.0185 us | 0.2422 | - | 2.97 KB |
-| JsonCons.JsonElement | 1.882 us | 0.5619 us | 0.0308 us | 0.2861 | - | 3.52 KB |
-| JsonEverything.JsonNode | 2.806 us | 0.3959 us | 0.0217 us | 0.4654 | 0.0038 | 5.72 KB |
-| Newtonsoft.JObject | 4.663 us | 0.5645 us | 0.0309 us | 1.1826 | 0.0534 | 14.52 KB |
-| | | | | | | |
-|`$.store.book[:2]`
-| Hyperbee.JsonElement | 1.604 us | 0.5879 us | 0.0322 us | 0.1945 | - | 2.41 KB |
-| JsonCraft.JsonElement | 1.637 us | 0.0647 us | 0.0035 us | 0.2098 | - | 2.58 KB |
-| Hyperbee.JsonNode | 1.826 us | 0.1527 us | 0.0084 us | 0.2422 | - | 2.97 KB |
-| JsonCons.JsonElement | 1.871 us | 0.6744 us | 0.0370 us | 0.2880 | - | 3.54 KB |
-| JsonEverything.JsonNode | 3.068 us | 0.0441 us | 0.0024 us | 0.4883 | 0.0038 | 6.02 KB |
-| Newtonsoft.JObject | 5.069 us | 5.6079 us | 0.3074 us | 1.1826 | 0.0305 | 14.51 KB |
-| | | | | | | |
-|`$.store.book[?(@.author && @.title)]`
-| JsonCraft.JsonElement | 2.007 us | 0.5824 us | 0.0319 us | 0.2670 | - | 3.3 KB |
-| Hyperbee.JsonElement | 2.387 us | 0.5434 us | 0.0298 us | 0.3395 | - | 4.18 KB |
-| JsonCons.JsonElement | 2.970 us | 0.5634 us | 0.0309 us | 0.4539 | 0.0038 | 5.58 KB |
-| Hyperbee.JsonNode | 3.636 us | 1.5759 us | 0.0864 us | 0.6561 | 0.0076 | 8.08 KB |
-| Newtonsoft.JObject | 5.449 us | 1.4272 us | 0.0782 us | 1.3199 | 0.0458 | 16.18 KB |
-| JsonEverything.JsonNode | 7.147 us | 3.7089 us | 0.2033 us | 1.4648 | 0.0305 | 18.32 KB |
-| | | | | | | |
-|`$.store.book[?(@.category == 'fiction')]`
-| JsonCraft.JsonElement | 2.243 us | 1.6372 us | 0.0897 us | 0.2747 | - | 3.38 KB |
-| JsonCons.JsonElement | 2.800 us | 0.8079 us | 0.0443 us | 0.4082 | 0.0038 | 5.01 KB |
-| Hyperbee.JsonElement | 2.825 us | 2.4544 us | 0.1345 us | 0.3510 | - | 4.34 KB |
-| Hyperbee.JsonNode | 3.391 us | 3.0949 us | 0.1696 us | 0.6561 | - | 8.2 KB |
-| Newtonsoft.JObject | 5.009 us | 0.9350 us | 0.0513 us | 1.2817 | 0.0458 | 15.74 KB |
-| JsonEverything.JsonNode | 7.002 us | 0.9434 us | 0.0517 us | 1.3428 | 0.0305 | 16.49 KB |
-| | | | | | | |
-|`$.store.book[?(@.price < 10)].title`
-| JsonCraft.JsonElement | 2.357 us | 1.1758 us | 0.0644 us | 0.2747 | - | 3.37 KB |
-| Hyperbee.JsonElement | 2.496 us | 1.2422 us | 0.0681 us | 0.3548 | - | 4.35 KB |
-| JsonCons.JsonElement | 2.954 us | 1.3447 us | 0.0737 us | 0.4196 | - | 5.18 KB |
-| Hyperbee.JsonNode | 3.466 us | 0.7381 us | 0.0405 us | 0.6561 | - | 8.09 KB |
-| Newtonsoft.JObject | 5.209 us | 1.2339 us | 0.0676 us | 1.2894 | 0.0534 | 15.89 KB |
-| JsonEverything.JsonNode | 7.547 us | 1.3411 us | 0.0735 us | 1.4038 | 0.0305 | 17.38 KB |
-| | | | | | | |
-|`$.store.book[?(@.price > 10 && @.price < 20)]`
-| JsonCraft.JsonElement | 2.798 us | 1.2832 us | 0.0703 us | 0.3090 | - | 3.82 KB |
-| Hyperbee.JsonElement | 3.067 us | 1.9850 us | 0.1088 us | 0.4349 | 0.0038 | 5.37 KB |
-| Hyperbee.JsonNode | 3.827 us | 2.2293 us | 0.1222 us | 0.7324 | - | 9.14 KB |
-| JsonCons.JsonElement | 4.398 us | 3.5937 us | 0.1970 us | 0.5035 | - | 6.23 KB |
-| Newtonsoft.JObject | 5.358 us | 2.0125 us | 0.1103 us | 1.3580 | 0.0534 | 16.69 KB |
-| JsonEverything.JsonNode | 9.003 us | 2.3392 us | 0.1282 us | 1.8005 | 0.0305 | 22.27 KB |
-| | | | | | | |
-|`$.store.book[?@.price == 8.99]`
-| Hyperbee.JsonElement | 2.291 us | 1.2891 us | 0.0707 us | 0.3357 | - | 4.15 KB |
-| JsonCons.JsonElement | 2.826 us | 1.0191 us | 0.0559 us | 0.4044 | - | 4.97 KB |
-| Hyperbee.JsonNode | 3.630 us | 3.3549 us | 0.1839 us | 0.6409 | - | 7.89 KB |
-| JsonEverything.JsonNode | 6.450 us | 1.0062 us | 0.0552 us | 1.2512 | 0.0305 | 15.47 KB |
-| JsonCraft.JsonElement | NA | NA | NA | NA | NA | NA |
-| Newtonsoft.JObject | NA | NA | NA | NA | NA | NA |
-| | | | | | | |
-|`$.store.book['category','author']`
-| JsonCraft.JsonElement | 1.650 us | 0.2189 us | 0.0120 us | 0.2403 | - | 2.95 KB |
-| JsonCons.JsonElement | 1.862 us | 0.1098 us | 0.0060 us | 0.2937 | 0.0019 | 3.61 KB |
-| Hyperbee.JsonElement | 1.988 us | 0.8489 us | 0.0465 us | 0.2098 | - | 2.61 KB |
-| JsonEverything.JsonNode | 2.622 us | 0.8004 us | 0.0439 us | 0.4387 | 0.0038 | 5.41 KB |
-| Hyperbee.JsonNode | 3.215 us | 1.1826 us | 0.0648 us | 0.5226 | 0.0076 | 6.42 KB |
-| Newtonsoft.JObject | 4.681 us | 0.5122 us | 0.0281 us | 1.2054 | 0.0534 | 14.85 KB |
-| | | | | | | |
-|`$.store.book[*].author`
-| JsonCraft.JsonElement | 1.729 us | 0.7445 us | 0.0408 us | 0.2136 | 0.0019 | 2.63 KB |
-| JsonCons.JsonElement | 1.909 us | 0.4640 us | 0.0254 us | 0.2861 | - | 3.55 KB |
-| Hyperbee.JsonElement | 1.993 us | 0.3660 us | 0.0201 us | 0.2480 | - | 3.05 KB |
-| Hyperbee.JsonNode | 2.885 us | 2.4990 us | 0.1370 us | 0.5493 | - | 6.83 KB |
-| Newtonsoft.JObject | 4.894 us | 6.5976 us | 0.3616 us | 1.1902 | 0.0534 | 14.64 KB |
-| JsonEverything.JsonNode | 5.893 us | 1.3873 us | 0.0760 us | 1.0071 | - | 12.45 KB |
-| | | | | | | |
-|`$.store.book[*]`
-| JsonCraft.JsonElement | 1.578 us | 0.8516 us | 0.0467 us | 0.1984 | - | 2.45 KB |
-| JsonCons.JsonElement | 1.692 us | 0.8482 us | 0.0465 us | 0.2728 | - | 3.35 KB |
-| Hyperbee.JsonElement | 1.738 us | 0.3719 us | 0.0204 us | 0.2155 | - | 2.65 KB |
-| Hyperbee.JsonNode | 1.923 us | 0.7320 us | 0.0401 us | 0.2556 | - | 3.17 KB |
-| JsonEverything.JsonNode | 3.526 us | 0.0963 us | 0.0053 us | 0.5341 | - | 6.61 KB |
-| Newtonsoft.JObject | 4.752 us | 0.2905 us | 0.0159 us | 1.1826 | 0.0381 | 14.49 KB |
-| | | | | | | |
-|`$.store.book[0,1]`
-| Hyperbee.JsonElement | 1.560 us | 0.6522 us | 0.0358 us | 0.1945 | - | 2.41 KB |
-| JsonCraft.JsonElement | 1.675 us | 0.3241 us | 0.0178 us | 0.2136 | - | 2.64 KB |
-| JsonCons.JsonElement | 1.910 us | 0.3014 us | 0.0165 us | 0.3033 | - | 3.73 KB |
-| Hyperbee.JsonNode | 1.976 us | 1.1111 us | 0.0609 us | 0.2403 | - | 2.97 KB |
-| JsonEverything.JsonNode | 3.071 us | 0.1558 us | 0.0085 us | 0.4883 | - | 6.07 KB |
-| Newtonsoft.JObject | 4.870 us | 0.8053 us | 0.0441 us | 1.1902 | 0.0534 | 14.59 KB |
-| | | | | | | |
-|`$.store.book[0].title`
-| Hyperbee.JsonElement | 1.515 us | 0.1457 us | 0.0080 us | 0.1755 | - | 2.17 KB |
-| JsonCraft.JsonElement | 1.713 us | 1.1282 us | 0.0618 us | 0.2041 | - | 2.51 KB |
-| JsonCons.JsonElement | 1.869 us | 0.0938 us | 0.0051 us | 0.2689 | - | 3.3 KB |
-| Hyperbee.JsonNode | 1.945 us | 0.2311 us | 0.0127 us | 0.2937 | - | 3.6 KB |
-| JsonEverything.JsonNode | 3.451 us | 0.4020 us | 0.0220 us | 0.5951 | - | 7.38 KB |
-| Newtonsoft.JObject | 4.706 us | 1.4286 us | 0.0783 us | 1.1902 | 0.0458 | 14.62 KB |
-| | | | | | | |
-|`$.store.book[0]`
-| Hyperbee.JsonElement | 1.392 us | 0.6219 us | 0.0341 us | 0.1755 | - | 2.17 KB |
-| JsonCraft.JsonElement | 1.570 us | 0.2170 us | 0.0119 us | 0.1984 | - | 2.44 KB |
-| JsonCons.JsonElement | 1.783 us | 0.9320 us | 0.0511 us | 0.2613 | - | 3.21 KB |
-| Hyperbee.JsonNode | 1.870 us | 0.6578 us | 0.0361 us | 0.2308 | - | 2.83 KB |
-| JsonEverything.JsonNode | 2.832 us | 0.6614 us | 0.0363 us | 0.4616 | 0.0038 | 5.68 KB |
-| Newtonsoft.JObject | 4.697 us | 0.9290 us | 0.0509 us | 1.1749 | 0.0381 | 14.48 KB |
-| | | | | | | |
-|`$`
-| Hyperbee.JsonElement | 1.316 us | 0.7199 us | 0.0395 us | 0.1755 | - | 2.17 KB |
-| JsonCraft.JsonElement | 1.368 us | 0.0907 us | 0.0050 us | 0.1793 | - | 2.22 KB |
-| JsonEverything.JsonNode | 1.438 us | 0.1670 us | 0.0092 us | 0.1526 | - | 1.88 KB |
-| Hyperbee.JsonNode | 1.440 us | 0.2725 us | 0.0149 us | 0.1411 | - | 1.75 KB |
-| JsonCons.JsonElement | 1.456 us | 0.1789 us | 0.0098 us | 0.2384 | - | 2.94 KB |
-| Newtonsoft.JObject | 4.331 us | 1.0036 us | 0.0550 us | 1.1368 | 0.0381 | 13.98 KB |
+| JsonCraft.JsonElement | 2.071 us | 0.8571 us | 0.0470 us | 0.2327 | - | 2.88 KB |
+| Hyperbee.JsonElement | 2.275 us | 0.5597 us | 0.0307 us | 0.4158 | - | 5.1 KB |
+| JsonCons.JsonElement | 2.572 us | 0.2856 us | 0.0157 us | 0.4463 | 0.0038 | 5.47 KB |
+| Hyperbee.JsonNode | 3.226 us | 0.6372 us | 0.0349 us | 0.7019 | - | 8.64 KB |
+| Newtonsoft.JObject | 4.793 us | 3.7445 us | 0.2053 us | 1.1520 | 0.0381 | 14.2 KB |
+| JsonEverything.JsonNode | 11.786 us | 2.5761 us | 0.1412 us | 2.0752 | - | 26.1 KB |
+| | | | | | | |
+| `$..book[?@.isbn]`
+| Hyperbee.JsonElement | 2.814 us | 0.7079 us | 0.0388 us | 0.4997 | 0.0038 | 6.14 KB |
+| JsonCons.JsonElement | 3.348 us | 0.4197 us | 0.0230 us | 0.5836 | 0.0038 | 7.16 KB |
+| Hyperbee.JsonNode | 3.587 us | 1.1927 us | 0.0654 us | 0.7629 | - | 9.64 KB |
+| JsonEverything.JsonNode | 12.860 us | 6.6350 us | 0.3637 us | 2.4414 | 0.0610 | 29.98 KB |
+| JsonCraft.JsonElement | NA | NA | NA | NA | NA | NA |
+| Newtonsoft.JObject | NA | NA | NA | NA | NA | NA |
+| | | | | | | |
+| `$..book[?@.price == 8.99 && @.category == 'fiction']`
+| Hyperbee.JsonElement | 3.599 us | 1.1407 us | 0.0625 us | 0.6752 | 0.0038 | 8.28 KB |
+| Hyperbee.JsonNode | 4.593 us | 2.6977 us | 0.1479 us | 0.9460 | - | 11.91 KB |
+| JsonCons.JsonElement | 4.684 us | 3.2355 us | 0.1774 us | 0.6866 | - | 8.48 KB |
+| JsonEverything.JsonNode | 17.000 us | 14.9488 us | 0.8194 us | 3.1738 | - | 39.52 KB |
+| JsonCraft.JsonElement | NA | NA | NA | NA | NA | NA |
+| Newtonsoft.JObject | NA | NA | NA | NA | NA | NA |
+| | | | | | | |
+| $..book[0,1]
+| JsonCraft.JsonElement | 2.184 us | 1.1145 us | 0.0611 us | 0.2518 | - | 3.09 KB |
+| Hyperbee.JsonElement | 2.316 us | 0.6324 us | 0.0347 us | 0.4158 | - | 5.1 KB |
+| JsonCons.JsonElement | 2.973 us | 3.2806 us | 0.1798 us | 0.4921 | 0.0038 | 6.06 KB |
+| Hyperbee.JsonNode | 3.363 us | 2.4201 us | 0.1327 us | 0.7019 | 0.0038 | 8.64 KB |
+| Newtonsoft.JObject | 4.709 us | 1.1244 us | 0.0616 us | 1.1749 | 0.0458 | 14.45 KB |
+| JsonEverything.JsonNode | 11.585 us | 1.1525 us | 0.0632 us | 2.1362 | 0.0610 | 26.41 KB |
+| | | | | | | |
+| `$..book[0]`
+| JsonCraft.JsonElement | 2.097 us | 0.7390 us | 0.0405 us | 0.2441 | - | 3 KB |
+| Hyperbee.JsonElement | 2.417 us | 0.4037 us | 0.0221 us | 0.4158 | - | 5.1 KB |
+| JsonCons.JsonElement | 2.767 us | 1.0765 us | 0.0590 us | 0.4539 | 0.0038 | 5.59 KB |
+| Hyperbee.JsonNode | 3.439 us | 2.6110 us | 0.1431 us | 0.7019 | - | 8.64 KB |
+| Newtonsoft.JObject | 4.730 us | 0.4614 us | 0.0253 us | 1.1673 | 0.0381 | 14.33 KB |
+| JsonEverything.JsonNode | 11.404 us | 1.6551 us | 0.0907 us | 2.0752 | 0.0610 | 26.02 KB |
+| | | | | | | |
+| `$.store..price`
+| Hyperbee.JsonElement | 2.174 us | 0.2046 us | 0.0112 us | 0.3853 | - | 4.73 KB |
+| JsonCraft.JsonElement | 2.174 us | 0.9541 us | 0.0523 us | 0.2518 | - | 3.13 KB |
+| JsonCons.JsonElement | 2.657 us | 1.2199 us | 0.0669 us | 0.4539 | - | 5.57 KB |
+| Hyperbee.JsonNode | 3.219 us | 1.6130 us | 0.0884 us | 0.6828 | - | 8.38 KB |
+| Newtonsoft.JObject | 4.751 us | 0.3461 us | 0.0190 us | 1.1673 | 0.0381 | 14.34 KB |
+| JsonEverything.JsonNode | 12.312 us | 4.6283 us | 0.2537 us | 2.1362 | 0.0610 | 26.63 KB |
+| | | | | | | |
+| `$.store.*`
+| JsonCraft.JsonElement | 1.415 us | 0.5540 us | 0.0304 us | 0.2022 | - | 2.49 KB |
+| Hyperbee.JsonElement | 1.564 us | 0.4252 us | 0.0233 us | 0.2289 | - | 2.81 KB |
+| JsonCons.JsonElement | 1.699 us | 0.5680 us | 0.0311 us | 0.2651 | - | 3.27 KB |
+| Hyperbee.JsonNode | 1.762 us | 0.0234 us | 0.0013 us | 0.2365 | 0.0019 | 2.9 KB |
+| JsonEverything.JsonNode | 2.264 us | 0.3401 us | 0.0186 us | 0.3891 | 0.0038 | 4.8 KB |
+| Newtonsoft.JObject | 4.142 us | 0.4524 us | 0.0248 us | 1.1749 | 0.0458 | 14.43 KB |
+| | | | | | | |
+| `$.store.bicycle.color`
+| Hyperbee.JsonElement | 1.415 us | 0.3898 us | 0.0214 us | 0.1755 | - | 2.17 KB |
+| JsonCraft.JsonElement | 1.532 us | 0.2165 us | 0.0119 us | 0.1984 | - | 2.45 KB |
+| JsonCons.JsonElement | 1.671 us | 0.2610 us | 0.0143 us | 0.2632 | - | 3.23 KB |
+| Hyperbee.JsonNode | 1.706 us | 0.4849 us | 0.0266 us | 0.2346 | - | 2.88 KB |
+| JsonEverything.JsonNode | 2.629 us | 1.6792 us | 0.0920 us | 0.4654 | 0.0038 | 5.74 KB |
+| Newtonsoft.JObject | 4.336 us | 1.2294 us | 0.0674 us | 1.1826 | 0.0381 | 14.49 KB |
+| | | | | | | |
+| `$.store.book[-1:]`
+| JsonCraft.JsonElement | 1.479 us | 0.1113 us | 0.0061 us | 0.2098 | - | 2.58 KB |
+| Hyperbee.JsonElement | 1.515 us | 0.3284 us | 0.0180 us | 0.1945 | - | 2.41 KB |
+| JsonCons.JsonElement | 1.813 us | 0.0749 us | 0.0041 us | 0.2861 | 0.0019 | 3.52 KB |
+| Hyperbee.JsonNode | 1.821 us | 0.1880 us | 0.0103 us | 0.2422 | - | 2.97 KB |
+| JsonEverything.JsonNode | 2.686 us | 0.5270 us | 0.0289 us | 0.4654 | 0.0038 | 5.72 KB |
+| Newtonsoft.JObject | 4.390 us | 0.6167 us | 0.0338 us | 1.1826 | 0.0534 | 14.52 KB |
+| | | | | | | |
+| `$.store.book[:2]`
+| JsonCraft.JsonElement | 1.547 us | 0.3302 us | 0.0181 us | 0.2098 | - | 2.58 KB |
+| Hyperbee.JsonElement | 1.554 us | 1.0503 us | 0.0576 us | 0.1945 | - | 2.41 KB |
+| JsonCons.JsonElement | 1.867 us | 0.9304 us | 0.0510 us | 0.2880 | - | 3.54 KB |
+| Hyperbee.JsonNode | 1.869 us | 0.2955 us | 0.0162 us | 0.2289 | - | 2.97 KB |
+| JsonEverything.JsonNode | 3.112 us | 1.4792 us | 0.0811 us | 0.4883 | - | 6.02 KB |
+| Newtonsoft.JObject | 4.344 us | 4.3641 us | 0.2392 us | 1.1826 | 0.0305 | 14.51 KB |
+| | | | | | | |
+| `$.store.book[?(@.author && @.title)]`
+| JsonCraft.JsonElement | 1.924 us | 0.1844 us | 0.0101 us | 0.2689 | 0.0019 | 3.3 KB |
+| Hyperbee.JsonElement | 2.331 us | 0.8201 us | 0.0450 us | 0.3395 | - | 4.18 KB |
+| JsonCons.JsonElement | 2.776 us | 0.5326 us | 0.0292 us | 0.4539 | 0.0038 | 5.58 KB |
+| Hyperbee.JsonNode | 3.377 us | 0.4035 us | 0.0221 us | 0.6561 | 0.0076 | 8.08 KB |
+| Newtonsoft.JObject | 4.779 us | 2.3452 us | 0.1285 us | 1.3199 | 0.0458 | 16.18 KB |
+| JsonEverything.JsonNode | 6.403 us | 1.9211 us | 0.1053 us | 1.4648 | 0.0305 | 18.32 KB |
+| | | | | | | |
+| `$.store.book[?(@.category == 'fiction')]`
+| JsonCraft.JsonElement | 2.038 us | 0.5141 us | 0.0282 us | 0.2747 | - | 3.38 KB |
+| Hyperbee.JsonElement | 2.317 us | 0.2970 us | 0.0163 us | 0.3510 | - | 4.34 KB |
+| JsonCons.JsonElement | 2.643 us | 0.8319 us | 0.0456 us | 0.4082 | 0.0038 | 5.01 KB |
+| Hyperbee.JsonNode | 3.393 us | 0.3912 us | 0.0214 us | 0.6561 | - | 8.2 KB |
+| Newtonsoft.JObject | 4.663 us | 1.3455 us | 0.0737 us | 1.2817 | 0.0458 | 15.74 KB |
+| JsonEverything.JsonNode | 6.502 us | 4.8220 us | 0.2643 us | 1.3428 | 0.0305 | 16.49 KB |
+| | | | | | | |
+| `$.store.book[?(@.price < 10)].title`
+| JsonCraft.JsonElement | 2.349 us | 0.1454 us | 0.0080 us | 0.2747 | - | 3.37 KB |
+| Hyperbee.JsonElement | 2.379 us | 0.2508 us | 0.0137 us | 0.3548 | - | 4.35 KB |
+| JsonCons.JsonElement | 3.008 us | 1.7216 us | 0.0944 us | 0.4196 | - | 5.18 KB |
+| Hyperbee.JsonNode | 3.453 us | 0.6436 us | 0.0353 us | 0.6561 | - | 8.09 KB |
+| Newtonsoft.JObject | 4.762 us | 1.8678 us | 0.1024 us | 1.2894 | 0.0534 | 15.89 KB |
+| JsonEverything.JsonNode | 6.891 us | 1.2944 us | 0.0709 us | 1.4114 | 0.0381 | 17.38 KB |
+| | | | | | | |
+| `$.store.book[?(@.price > 10 && @.price < 20)]`
+| JsonCraft.JsonElement | 2.637 us | 0.3234 us | 0.0177 us | 0.3090 | - | 3.82 KB |
+| Hyperbee.JsonElement | 2.730 us | 0.9871 us | 0.0541 us | 0.4349 | 0.0038 | 5.37 KB |
+| JsonCons.JsonElement | 3.726 us | 0.1036 us | 0.0057 us | 0.5074 | 0.0038 | 6.23 KB |
+| Hyperbee.JsonNode | 4.091 us | 0.3535 us | 0.0194 us | 0.7324 | - | 9.14 KB |
+| Newtonsoft.JObject | 5.167 us | 2.3846 us | 0.1307 us | 1.3580 | 0.0534 | 16.69 KB |
+| JsonEverything.JsonNode | 8.309 us | 1.7991 us | 0.0986 us | 1.7700 | - | 22.02 KB |
+| | | | | | | |
+| `$.store.book[?@.price == 8.99]`
+| Hyperbee.JsonElement | 2.249 us | 0.4713 us | 0.0258 us | 0.3357 | - | 4.15 KB |
+| JsonCons.JsonElement | 2.763 us | 1.0265 us | 0.0563 us | 0.4044 | - | 4.97 KB |
+| Hyperbee.JsonNode | 3.416 us | 2.2807 us | 0.1250 us | 0.6409 | - | 7.89 KB |
+| JsonEverything.JsonNode | 6.221 us | 5.2637 us | 0.2885 us | 1.2512 | 0.0305 | 15.47 KB |
+| JsonCraft.JsonElement | NA | NA | NA | NA | NA | NA |
+| Newtonsoft.JObject | NA | NA | NA | NA | NA | NA |
+| | | | | | | |
+| `$.store.book['category','author']`
+| JsonCraft.JsonElement | 1.575 us | 0.1797 us | 0.0099 us | 0.2403 | - | 2.95 KB |
+| Hyperbee.JsonElement | 1.931 us | 0.2480 us | 0.0136 us | 0.2117 | - | 2.61 KB |
+| JsonCons.JsonElement | 1.955 us | 0.6808 us | 0.0373 us | 0.2937 | 0.0019 | 3.61 KB |
+| JsonEverything.JsonNode | 2.794 us | 4.9383 us | 0.2707 us | 0.4272 | - | 5.41 KB |
+| Hyperbee.JsonNode | 2.973 us | 1.8205 us | 0.0998 us | 0.5188 | - | 6.42 KB |
+| Newtonsoft.JObject | 4.169 us | 1.0726 us | 0.0588 us | 1.2054 | 0.0534 | 14.85 KB |
+| | | | | | | |
+| `$.store.book[*].author`
+| JsonCraft.JsonElement | 1.718 us | 0.1185 us | 0.0065 us | 0.2136 | 0.0019 | 2.63 KB |
+| Hyperbee.JsonElement | 1.910 us | 0.2440 us | 0.0134 us | 0.2480 | - | 3.05 KB |
+| JsonCons.JsonElement | 1.972 us | 1.2539 us | 0.0687 us | 0.2861 | - | 3.55 KB |
+| Hyperbee.JsonNode | 2.945 us | 0.7789 us | 0.0427 us | 0.5569 | 0.0076 | 6.83 KB |
+| Newtonsoft.JObject | 4.415 us | 1.5198 us | 0.0833 us | 1.1902 | 0.0534 | 14.64 KB |
+| JsonEverything.JsonNode | 5.322 us | 0.6684 us | 0.0366 us | 1.0071 | - | 12.45 KB |
+| | | | | | | |
+| `$.store.book[*]`
+| JsonCraft.JsonElement | 1.428 us | 0.1454 us | 0.0080 us | 0.1984 | - | 2.45 KB |
+| Hyperbee.JsonElement | 1.707 us | 0.3096 us | 0.0170 us | 0.2155 | - | 2.65 KB |
+| JsonCons.JsonElement | 1.725 us | 1.0244 us | 0.0562 us | 0.2728 | - | 3.35 KB |
+| Hyperbee.JsonNode | 1.948 us | 0.1280 us | 0.0070 us | 0.2575 | - | 3.17 KB |
+| JsonEverything.JsonNode | 3.429 us | 3.3142 us | 0.1817 us | 0.5379 | 0.0038 | 6.61 KB |
+| Newtonsoft.JObject | 4.222 us | 0.6171 us | 0.0338 us | 1.1826 | 0.0381 | 14.49 KB |
+| | | | | | | |
+| `$.store.book[0,1]`
+| Hyperbee.JsonElement | 1.542 us | 0.2708 us | 0.0148 us | 0.1945 | - | 2.41 KB |
+| JsonCraft.JsonElement | 1.570 us | 1.4388 us | 0.0789 us | 0.2136 | - | 2.64 KB |
+| Hyperbee.JsonNode | 1.862 us | 0.2584 us | 0.0142 us | 0.2403 | - | 2.97 KB |
+| JsonCons.JsonElement | 1.922 us | 0.6784 us | 0.0372 us | 0.3014 | - | 3.73 KB |
+| JsonEverything.JsonNode | 3.016 us | 0.8618 us | 0.0472 us | 0.4883 | - | 6.07 KB |
+| Newtonsoft.JObject | 4.287 us | 1.0252 us | 0.0562 us | 1.1902 | 0.0534 | 14.59 KB |
+| | | | | | | |
+| `$.store.book[0].title`
+| Hyperbee.JsonElement | 1.457 us | 0.3260 us | 0.0179 us | 0.1755 | - | 2.17 KB |
+| JsonCraft.JsonElement | 1.768 us | 1.8446 us | 0.1011 us | 0.2041 | - | 2.51 KB |
+| JsonCons.JsonElement | 1.808 us | 0.5749 us | 0.0315 us | 0.2689 | - | 3.3 KB |
+| Hyperbee.JsonNode | 1.926 us | 0.6973 us | 0.0382 us | 0.2937 | - | 3.63 KB |
+| JsonEverything.JsonNode | 3.203 us | 0.4522 us | 0.0248 us | 0.5951 | - | 7.38 KB |
+| Newtonsoft.JObject | 4.559 us | 3.8857 us | 0.2130 us | 1.1902 | 0.0458 | 14.62 KB |
+| | | | | | | |
+| `$.store.book[0]`
+| Hyperbee.JsonElement | 1.349 us | 0.5027 us | 0.0276 us | 0.1755 | - | 2.17 KB |
+| JsonCraft.JsonElement | 1.493 us | 0.5471 us | 0.0300 us | 0.1984 | - | 2.44 KB |
+| Hyperbee.JsonNode | 1.657 us | 0.3633 us | 0.0199 us | 0.2327 | - | 2.86 KB |
+| JsonCons.JsonElement | 1.733 us | 0.3863 us | 0.0212 us | 0.2613 | - | 3.21 KB |
+| JsonEverything.JsonNode | 2.670 us | 0.6862 us | 0.0376 us | 0.4616 | 0.0038 | 5.68 KB |
+| Newtonsoft.JObject | 4.155 us | 1.3012 us | 0.0713 us | 1.1749 | 0.0381 | 14.48 KB |
+| | | | | | | |
+| `$`
+| JsonCraft.JsonElement | 1.299 us | 0.3820 us | 0.0209 us | 0.1793 | - | 2.22 KB |
+| Hyperbee.JsonElement | 1.312 us | 0.2933 us | 0.0161 us | 0.1755 | - | 2.17 KB |
+| Hyperbee.JsonNode | 1.322 us | 0.3885 us | 0.0213 us | 0.1411 | - | 1.75 KB |
+| JsonEverything.JsonNode | 1.361 us | 0.2123 us | 0.0116 us | 0.1526 | - | 1.88 KB |
+| JsonCons.JsonElement | 1.477 us | 0.6836 us | 0.0375 us | 0.2384 | - | 2.94 KB |
+| Newtonsoft.JObject | 3.864 us | 0.4926 us | 0.0270 us | 1.1368 | 0.0381 | 13.98 KB |
## Credits
diff --git a/src/Hyperbee.Json/Hyperbee.Json.csproj b/src/Hyperbee.Json/Hyperbee.Json.csproj
index ccd44ec..3a6111e 100644
--- a/src/Hyperbee.Json/Hyperbee.Json.csproj
+++ b/src/Hyperbee.Json/Hyperbee.Json.csproj
@@ -1,9 +1,6 @@
- net8.0;net10.0
- enable
true
-
Stillpoint Software, Inc.
Hyperbee.Json
README.md
@@ -36,11 +33,8 @@
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
+
\ No newline at end of file
diff --git a/test/Hyperbee.Json.Benchmark/Hyperbee.Json.Benchmark.csproj b/test/Hyperbee.Json.Benchmark/Hyperbee.Json.Benchmark.csproj
index 3cffe7c..198d5cd 100644
--- a/test/Hyperbee.Json.Benchmark/Hyperbee.Json.Benchmark.csproj
+++ b/test/Hyperbee.Json.Benchmark/Hyperbee.Json.Benchmark.csproj
@@ -2,8 +2,6 @@
Exe
- net10.0
- enable
false
@@ -14,26 +12,18 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
diff --git a/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.FilterExpressionParserEvaluator-report-jsonpath.md b/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.FilterExpressionParserEvaluator-report-jsonpath.md
index 8bd0e77..7d6a5d8 100644
--- a/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.FilterExpressionParserEvaluator-report-jsonpath.md
+++ b/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.FilterExpressionParserEvaluator-report-jsonpath.md
@@ -3,7 +3,7 @@
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7462/25H2/2025Update/HudsonValley2)
12th Gen Intel Core i9-12900HK 2.50GHz, 1 CPU, 20 logical and 14 physical cores
.NET SDK 10.0.101
- [Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 DEBUG
+ [Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 [AttachedDebugger]
ShortRun : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3
diff --git a/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonDiffBenchmark-report-jsonpath.md b/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonDiffBenchmark-report-jsonpath.md
index 1c12c10..7b2feea 100644
--- a/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonDiffBenchmark-report-jsonpath.md
+++ b/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonDiffBenchmark-report-jsonpath.md
@@ -3,15 +3,15 @@
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7462/25H2/2025Update/HudsonValley2)
12th Gen Intel Core i9-12900HK 2.50GHz, 1 CPU, 20 logical and 14 physical cores
.NET SDK 10.0.101
- [Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 DEBUG
+ [Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 [AttachedDebugger]
ShortRun : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3
- | Method | Mean | Error | StdDev | Allocated
- | :-------------------- | --------: | ---------: | --------: | ---------:
- | JsonDiff_JsonNode | 438.2 ns | 45.95 ns | 2.52 ns | 1.3 KB
- | JsonDiff_JsonElement | 663.2 ns | 538.12 ns | 29.50 ns | 1.93 KB
- | | | | |
- | JsonDiff_JsonNode | 347.0 ns | 117.11 ns | 6.42 ns | 1.2 KB
- | JsonDiff_JsonElement | 472.1 ns | 175.95 ns | 9.64 ns | 1.66 KB
+ | Method | Mean | Error | StdDev | Allocated
+ | :-------------------- | --------: | ---------: | -------: | ---------:
+ | JsonDiff_JsonNode | 431.2 ns | 109.04 ns | 5.98 ns | 1.3 KB
+ | JsonDiff_JsonElement | 636.4 ns | 70.49 ns | 3.86 ns | 1.93 KB
+ | | | | |
+ | JsonDiff_JsonNode | 335.6 ns | 80.57 ns | 4.42 ns | 1.2 KB
+ | JsonDiff_JsonElement | 507.5 ns | 180.81 ns | 9.91 ns | 1.66 KB
```
diff --git a/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonPatchBenchmark-report-jsonpath.md b/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonPatchBenchmark-report-jsonpath.md
index 735405f..0cfdd79 100644
--- a/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonPatchBenchmark-report-jsonpath.md
+++ b/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonPatchBenchmark-report-jsonpath.md
@@ -3,14 +3,14 @@
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7462/25H2/2025Update/HudsonValley2)
12th Gen Intel Core i9-12900HK 2.50GHz, 1 CPU, 20 logical and 14 physical cores
.NET SDK 10.0.101
- [Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 DEBUG
+ [Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 [AttachedDebugger]
ShortRun : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3
- | Method | Mean | Error | StdDev | Allocated
- | :----------------------- | ---------: | ---------: | ---------: | ---------:
- | Hyperbee_JsonElement | 79.45 ns | 34.78 ns | 1.906 ns | 392 B
- | Hyperbee_JsonNode | 84.85 ns | 64.17 ns | 3.517 ns | 392 B
- | JsonEverything_JsonNode | 188.61 ns | 319.11 ns | 17.491 ns | 968 B
- | AspNetCore_JsonNode | 353.32 ns | 106.43 ns | 5.834 ns | 1024 B
+ | Method | Mean | Error | StdDev | Allocated
+ | :----------------------- | ---------: | ---------: | --------: | ---------:
+ | Hyperbee_JsonNode | 78.55 ns | 14.146 ns | 0.775 ns | 392 B
+ | Hyperbee_JsonElement | 83.08 ns | 11.340 ns | 0.622 ns | 392 B
+ | JsonEverything_JsonNode | 184.07 ns | 2.770 ns | 0.152 ns | 968 B
+ | AspNetCore_JsonNode | 325.06 ns | 51.946 ns | 2.847 ns | 1024 B
```
diff --git a/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonPathParseAndSelectEvaluator-report-jsonpath.md b/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonPathParseAndSelectEvaluator-report-jsonpath.md
index b42d0de..8b4db1d 100644
--- a/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonPathParseAndSelectEvaluator-report-jsonpath.md
+++ b/test/Hyperbee.Json.Benchmark/benchmark/results/Hyperbee.Json.Benchmark.JsonPathParseAndSelectEvaluator-report-jsonpath.md
@@ -3,211 +3,211 @@
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7462/25H2/2025Update/HudsonValley2)
12th Gen Intel Core i9-12900HK 2.50GHz, 1 CPU, 20 logical and 14 physical cores
.NET SDK 10.0.101
- [Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 DEBUG
+ [Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 [AttachedDebugger]
ShortRun : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3
- | Method | Mean | Error | StdDev | Allocated
- | :----------------------- | ---------: | ---------: | ---------: | ---------:
+ | Method | Mean | Error | StdDev | Allocated
+ | :----------------------- | ---------: | ----------: | ---------: | ---------:
| `$..[?(@.price < 10)]`
- | JsonCraft.JsonElement | 3.049 μs | 0.7626 μs | 0.0418 μs | 3.59 KB
- | Hyperbee.JsonElement | 5.400 μs | 0.5197 μs | 0.0285 μs | 15.84 KB
- | Hyperbee.JsonNode | 5.824 μs | 1.8214 μs | 0.0998 μs | 18.38 KB
- | JsonCons.JsonElement | 5.955 μs | 2.4616 μs | 0.1349 μs | 12.73 KB
- | Newtonsoft.JObject | 8.838 μs | 1.3040 μs | 0.0715 μs | 25.86 KB
- | JsonEverything.JsonNode | 19.543 μs | 9.1216 μs | 0.5000 μs | 48.15 KB
- | | | | |
+ | JsonCraft.JsonElement | 2.957 μs | 1.1397 μs | 0.0625 μs | 3.59 KB
+ | Hyperbee.JsonElement | 5.221 μs | 0.8505 μs | 0.0466 μs | 15.84 KB
+ | JsonCons.JsonElement | 5.518 μs | 1.3367 μs | 0.0733 μs | 12.73 KB
+ | Hyperbee.JsonNode | 5.915 μs | 0.8714 μs | 0.0478 μs | 18.38 KB
+ | Newtonsoft.JObject | 8.009 μs | 1.7612 μs | 0.0965 μs | 25.86 KB
+ | JsonEverything.JsonNode | 17.850 μs | 12.0238 μs | 0.6591 μs | 48.15 KB
+ | | | | |
| `$..['bicycle','price']`
- | JsonCraft.JsonElement | 2.451 μs | 0.3691 μs | 0.0202 μs | 4.01 KB
- | Hyperbee.JsonElement | 2.689 μs | 0.6920 μs | 0.0379 μs | 5.12 KB
- | JsonCons.JsonElement | 3.217 μs | 0.4797 μs | 0.0263 μs | 7.13 KB
- | Hyperbee.JsonNode | 3.435 μs | 0.8745 μs | 0.0479 μs | 8.84 KB
- | Newtonsoft.JObject | 5.548 μs | 1.7475 μs | 0.0958 μs | 14.55 KB
- | JsonEverything.JsonNode | 12.999 μs | 0.5857 μs | 0.0321 μs | 28.5 KB
- | | | | |
+ | JsonCraft.JsonElement | 2.309 μs | 0.2498 μs | 0.0137 μs | 4.01 KB
+ | Hyperbee.JsonElement | 2.701 μs | 1.0824 μs | 0.0593 μs | 5.12 KB
+ | JsonCons.JsonElement | 3.058 μs | 0.3820 μs | 0.0209 μs | 7.09 KB
+ | Hyperbee.JsonNode | 3.626 μs | 1.3209 μs | 0.0724 μs | 8.84 KB
+ | Newtonsoft.JObject | 4.990 μs | 1.5961 μs | 0.0875 μs | 14.55 KB
+ | JsonEverything.JsonNode | 12.183 μs | 2.7932 μs | 0.1531 μs | 28.5 KB
+ | | | | |
| `$..*`
- | JsonCraft.JsonElement | 2.110 μs | 0.2534 μs | 0.0139 μs | 2.88 KB
- | Hyperbee.JsonElement | 2.478 μs | 0.3201 μs | 0.0175 μs | 6.45 KB
- | Hyperbee.JsonNode | 3.434 μs | 0.6438 μs | 0.0353 μs | 9.54 KB
- | JsonCons.JsonElement | 3.450 μs | 0.5528 μs | 0.0303 μs | 8.45 KB
- | Newtonsoft.JObject | 5.217 μs | 0.4099 μs | 0.0225 μs | 14.19 KB
- | JsonEverything.JsonNode | 17.330 μs | 1.5400 μs | 0.0844 μs | 33.97 KB
- | | | | |
+ | JsonCraft.JsonElement | 2.023 μs | 0.4743 μs | 0.0260 μs | 2.88 KB
+ | Hyperbee.JsonElement | 2.390 μs | 0.7132 μs | 0.0391 μs | 6.45 KB
+ | JsonCons.JsonElement | 3.239 μs | 0.8771 μs | 0.0481 μs | 8.45 KB
+ | Hyperbee.JsonNode | 3.864 μs | 2.6714 μs | 0.1464 μs | 9.54 KB
+ | Newtonsoft.JObject | 4.864 μs | 0.7073 μs | 0.0388 μs | 14.19 KB
+ | JsonEverything.JsonNode | 17.367 μs | 10.7988 μs | 0.5919 μs | 33.97 KB
+ | | | | |
| `$..author`
- | JsonCraft.JsonElement | 2.352 μs | 0.4147 μs | 0.0227 μs | 2.88 KB
- | Hyperbee.JsonElement | 2.359 μs | 0.2998 μs | 0.0164 μs | 5.1 KB
- | JsonCons.JsonElement | 2.826 μs | 1.7249 μs | 0.0945 μs | 5.47 KB
- | Hyperbee.JsonNode | 3.290 μs | 2.1900 μs | 0.1200 μs | 8.64 KB
- | Newtonsoft.JObject | 5.246 μs | 0.8047 μs | 0.0441 μs | 14.2 KB
- | JsonEverything.JsonNode | 12.429 μs | 6.1835 μs | 0.3389 μs | 26.1 KB
- | | | | |
+ | JsonCraft.JsonElement | 2.071 μs | 0.8571 μs | 0.0470 μs | 2.88 KB
+ | Hyperbee.JsonElement | 2.275 μs | 0.5597 μs | 0.0307 μs | 5.1 KB
+ | JsonCons.JsonElement | 2.572 μs | 0.2856 μs | 0.0157 μs | 5.47 KB
+ | Hyperbee.JsonNode | 3.226 μs | 0.6372 μs | 0.0349 μs | 8.64 KB
+ | Newtonsoft.JObject | 4.793 μs | 3.7445 μs | 0.2053 μs | 14.2 KB
+ | JsonEverything.JsonNode | 11.786 μs | 2.5761 μs | 0.1412 μs | 26.1 KB
+ | | | | |
| `$..book[?@.isbn]`
- | Hyperbee.JsonElement | 2.883 μs | 1.0678 μs | 0.0585 μs | 6.14 KB
- | JsonCons.JsonElement | 3.362 μs | 0.8878 μs | 0.0487 μs | 7.16 KB
- | Hyperbee.JsonNode | 3.965 μs | 3.7942 μs | 0.2080 μs | 9.64 KB
- | JsonEverything.JsonNode | 13.766 μs | 1.2953 μs | 0.0710 μs | 29.98 KB
- | JsonCraft.JsonElement | NA | NA | NA | NA
- | Newtonsoft.JObject | NA | NA | NA | NA
- | | | | |
+ | Hyperbee.JsonElement | 2.814 μs | 0.7079 μs | 0.0388 μs | 6.14 KB
+ | JsonCons.JsonElement | 3.348 μs | 0.4197 μs | 0.0230 μs | 7.16 KB
+ | Hyperbee.JsonNode | 3.587 μs | 1.1927 μs | 0.0654 μs | 9.64 KB
+ | JsonEverything.JsonNode | 12.860 μs | 6.6350 μs | 0.3637 μs | 29.98 KB
+ | JsonCraft.JsonElement | NA | NA | NA | NA
+ | Newtonsoft.JObject | NA | NA | NA | NA
+ | | | | |
| `$..book[?@.price == 8.99 && @.category == 'fiction']`
- | Hyperbee.JsonElement | 3.708 μs | 1.8637 μs | 0.1022 μs | 8.28 KB
- | Hyperbee.JsonNode | 4.746 μs | 0.9875 μs | 0.0541 μs | 11.91 KB
- | JsonCons.JsonElement | 4.845 μs | 1.3375 μs | 0.0733 μs | 8.48 KB
- | JsonEverything.JsonNode | 17.256 μs | 1.0914 μs | 0.0598 μs | 39.27 KB
- | JsonCraft.JsonElement | NA | NA | NA | NA
- | Newtonsoft.JObject | NA | NA | NA | NA
- | | | | |
+ | Hyperbee.JsonElement | 3.599 μs | 1.1407 μs | 0.0625 μs | 8.28 KB
+ | Hyperbee.JsonNode | 4.593 μs | 2.6977 μs | 0.1479 μs | 11.91 KB
+ | JsonCons.JsonElement | 4.684 μs | 3.2355 μs | 0.1774 μs | 8.48 KB
+ | JsonEverything.JsonNode | 17.000 μs | 14.9488 μs | 0.8194 μs | 39.52 KB
+ | JsonCraft.JsonElement | NA | NA | NA | NA
+ | Newtonsoft.JObject | NA | NA | NA | NA
+ | | | | |
| `$..book[0,1]`
- | JsonCraft.JsonElement | 2.345 μs | 0.1935 μs | 0.0106 μs | 3.09 KB
- | Hyperbee.JsonElement | 2.417 μs | 0.0175 μs | 0.0010 μs | 5.1 KB
- | JsonCons.JsonElement | 3.005 μs | 0.9922 μs | 0.0544 μs | 6.1 KB
- | Hyperbee.JsonNode | 3.163 μs | 1.0620 μs | 0.0582 μs | 8.64 KB
- | Newtonsoft.JObject | 5.089 μs | 0.8914 μs | 0.0489 μs | 14.45 KB
- | JsonEverything.JsonNode | 12.339 μs | 0.9570 μs | 0.0525 μs | 26.41 KB
- | | | | |
+ | JsonCraft.JsonElement | 2.184 μs | 1.1145 μs | 0.0611 μs | 3.09 KB
+ | Hyperbee.JsonElement | 2.316 μs | 0.6324 μs | 0.0347 μs | 5.1 KB
+ | JsonCons.JsonElement | 2.973 μs | 3.2806 μs | 0.1798 μs | 6.06 KB
+ | Hyperbee.JsonNode | 3.363 μs | 2.4201 μs | 0.1327 μs | 8.64 KB
+ | Newtonsoft.JObject | 4.709 μs | 1.1244 μs | 0.0616 μs | 14.45 KB
+ | JsonEverything.JsonNode | 11.585 μs | 1.1525 μs | 0.0632 μs | 26.41 KB
+ | | | | |
| `$..book[0]`
- | JsonCraft.JsonElement | 2.241 μs | 0.1554 μs | 0.0085 μs | 3 KB
- | Hyperbee.JsonElement | 2.271 μs | 1.0724 μs | 0.0588 μs | 5.1 KB
- | JsonCons.JsonElement | 2.708 μs | 0.8340 μs | 0.0457 μs | 5.55 KB
- | Hyperbee.JsonNode | 3.528 μs | 0.2841 μs | 0.0156 μs | 8.64 KB
- | Newtonsoft.JObject | 5.005 μs | 0.3486 μs | 0.0191 μs | 14.33 KB
- | JsonEverything.JsonNode | 11.781 μs | 1.7173 μs | 0.0941 μs | 26.02 KB
- | | | | |
+ | JsonCraft.JsonElement | 2.097 μs | 0.7390 μs | 0.0405 μs | 3 KB
+ | Hyperbee.JsonElement | 2.417 μs | 0.4037 μs | 0.0221 μs | 5.1 KB
+ | JsonCons.JsonElement | 2.767 μs | 1.0765 μs | 0.0590 μs | 5.59 KB
+ | Hyperbee.JsonNode | 3.439 μs | 2.6110 μs | 0.1431 μs | 8.64 KB
+ | Newtonsoft.JObject | 4.730 μs | 0.4614 μs | 0.0253 μs | 14.33 KB
+ | JsonEverything.JsonNode | 11.404 μs | 1.6551 μs | 0.0907 μs | 26.02 KB
+ | | | | |
| `$.store..price`
- | Hyperbee.JsonElement | 2.293 μs | 0.4706 μs | 0.0258 μs | 4.73 KB
- | JsonCraft.JsonElement | 2.363 μs | 1.0577 μs | 0.0580 μs | 3.13 KB
- | JsonCons.JsonElement | 2.720 μs | 2.0514 μs | 0.1124 μs | 5.57 KB
- | Hyperbee.JsonNode | 3.181 μs | 0.5370 μs | 0.0294 μs | 8.38 KB
- | Newtonsoft.JObject | 5.083 μs | 0.4737 μs | 0.0260 μs | 14.34 KB
- | JsonEverything.JsonNode | 13.102 μs | 2.1212 μs | 0.1163 μs | 26.63 KB
- | | | | |
+ | Hyperbee.JsonElement | 2.174 μs | 0.2046 μs | 0.0112 μs | 4.73 KB
+ | JsonCraft.JsonElement | 2.174 μs | 0.9541 μs | 0.0523 μs | 3.13 KB
+ | JsonCons.JsonElement | 2.657 μs | 1.2199 μs | 0.0669 μs | 5.57 KB
+ | Hyperbee.JsonNode | 3.219 μs | 1.6130 μs | 0.0884 μs | 8.38 KB
+ | Newtonsoft.JObject | 4.751 μs | 0.3461 μs | 0.0190 μs | 14.34 KB
+ | JsonEverything.JsonNode | 12.312 μs | 4.6283 μs | 0.2537 μs | 26.63 KB
+ | | | | |
| `$.store.*`
- | JsonCraft.JsonElement | 1.561 μs | 0.1662 μs | 0.0091 μs | 2.49 KB
- | Hyperbee.JsonElement | 1.602 μs | 0.6889 μs | 0.0378 μs | 2.81 KB
- | JsonCons.JsonElement | 1.693 μs | 0.7460 μs | 0.0409 μs | 3.27 KB
- | Hyperbee.JsonNode | 1.784 μs | 0.6002 μs | 0.0329 μs | 2.9 KB
- | JsonEverything.JsonNode | 2.395 μs | 0.3007 μs | 0.0165 μs | 4.8 KB
- | Newtonsoft.JObject | 4.664 μs | 0.6593 μs | 0.0361 μs | 14.43 KB
- | | | | |
+ | JsonCraft.JsonElement | 1.415 μs | 0.5540 μs | 0.0304 μs | 2.49 KB
+ | Hyperbee.JsonElement | 1.564 μs | 0.4252 μs | 0.0233 μs | 2.81 KB
+ | JsonCons.JsonElement | 1.699 μs | 0.5680 μs | 0.0311 μs | 3.27 KB
+ | Hyperbee.JsonNode | 1.762 μs | 0.0234 μs | 0.0013 μs | 2.9 KB
+ | JsonEverything.JsonNode | 2.264 μs | 0.3401 μs | 0.0186 μs | 4.8 KB
+ | Newtonsoft.JObject | 4.142 μs | 0.4524 μs | 0.0248 μs | 14.43 KB
+ | | | | |
| `$.store.bicycle.color`
- | Hyperbee.JsonElement | 1.454 μs | 0.6877 μs | 0.0377 μs | 2.17 KB
- | JsonCraft.JsonElement | 1.585 μs | 0.7476 μs | 0.0410 μs | 2.45 KB
- | Hyperbee.JsonNode | 1.695 μs | 0.7429 μs | 0.0407 μs | 2.88 KB
- | JsonCons.JsonElement | 1.816 μs | 1.7814 μs | 0.0976 μs | 3.23 KB
- | JsonEverything.JsonNode | 2.892 μs | 0.3155 μs | 0.0173 μs | 5.74 KB
- | Newtonsoft.JObject | 4.582 μs | 0.7337 μs | 0.0402 μs | 14.49 KB
- | | | | |
+ | Hyperbee.JsonElement | 1.415 μs | 0.3898 μs | 0.0214 μs | 2.17 KB
+ | JsonCraft.JsonElement | 1.532 μs | 0.2165 μs | 0.0119 μs | 2.45 KB
+ | JsonCons.JsonElement | 1.671 μs | 0.2610 μs | 0.0143 μs | 3.23 KB
+ | Hyperbee.JsonNode | 1.706 μs | 0.4849 μs | 0.0266 μs | 2.88 KB
+ | JsonEverything.JsonNode | 2.629 μs | 1.6792 μs | 0.0920 μs | 5.74 KB
+ | Newtonsoft.JObject | 4.336 μs | 1.2294 μs | 0.0674 μs | 14.49 KB
+ | | | | |
| `$.store.book[-1:]`
- | Hyperbee.JsonElement | 1.579 μs | 0.5378 μs | 0.0295 μs | 2.41 KB
- | JsonCraft.JsonElement | 1.622 μs | 0.1762 μs | 0.0097 μs | 2.58 KB
- | Hyperbee.JsonNode | 1.809 μs | 0.3378 μs | 0.0185 μs | 2.97 KB
- | JsonCons.JsonElement | 1.882 μs | 0.5619 μs | 0.0308 μs | 3.52 KB
- | JsonEverything.JsonNode | 2.806 μs | 0.3959 μs | 0.0217 μs | 5.72 KB
- | Newtonsoft.JObject | 4.663 μs | 0.5645 μs | 0.0309 μs | 14.52 KB
- | | | | |
+ | JsonCraft.JsonElement | 1.479 μs | 0.1113 μs | 0.0061 μs | 2.58 KB
+ | Hyperbee.JsonElement | 1.515 μs | 0.3284 μs | 0.0180 μs | 2.41 KB
+ | JsonCons.JsonElement | 1.813 μs | 0.0749 μs | 0.0041 μs | 3.52 KB
+ | Hyperbee.JsonNode | 1.821 μs | 0.1880 μs | 0.0103 μs | 2.97 KB
+ | JsonEverything.JsonNode | 2.686 μs | 0.5270 μs | 0.0289 μs | 5.72 KB
+ | Newtonsoft.JObject | 4.390 μs | 0.6167 μs | 0.0338 μs | 14.52 KB
+ | | | | |
| `$.store.book[:2]`
- | Hyperbee.JsonElement | 1.604 μs | 0.5879 μs | 0.0322 μs | 2.41 KB
- | JsonCraft.JsonElement | 1.637 μs | 0.0647 μs | 0.0035 μs | 2.58 KB
- | Hyperbee.JsonNode | 1.826 μs | 0.1527 μs | 0.0084 μs | 2.97 KB
- | JsonCons.JsonElement | 1.871 μs | 0.6744 μs | 0.0370 μs | 3.54 KB
- | JsonEverything.JsonNode | 3.068 μs | 0.0441 μs | 0.0024 μs | 6.02 KB
- | Newtonsoft.JObject | 5.069 μs | 5.6079 μs | 0.3074 μs | 14.51 KB
- | | | | |
+ | JsonCraft.JsonElement | 1.547 μs | 0.3302 μs | 0.0181 μs | 2.58 KB
+ | Hyperbee.JsonElement | 1.554 μs | 1.0503 μs | 0.0576 μs | 2.41 KB
+ | JsonCons.JsonElement | 1.867 μs | 0.9304 μs | 0.0510 μs | 3.54 KB
+ | Hyperbee.JsonNode | 1.869 μs | 0.2955 μs | 0.0162 μs | 2.97 KB
+ | JsonEverything.JsonNode | 3.112 μs | 1.4792 μs | 0.0811 μs | 6.02 KB
+ | Newtonsoft.JObject | 4.344 μs | 4.3641 μs | 0.2392 μs | 14.51 KB
+ | | | | |
| `$.store.book[?(@.author && @.title)]`
- | JsonCraft.JsonElement | 2.007 μs | 0.5824 μs | 0.0319 μs | 3.3 KB
- | Hyperbee.JsonElement | 2.387 μs | 0.5434 μs | 0.0298 μs | 4.18 KB
- | JsonCons.JsonElement | 2.970 μs | 0.5634 μs | 0.0309 μs | 5.58 KB
- | Hyperbee.JsonNode | 3.636 μs | 1.5759 μs | 0.0864 μs | 8.08 KB
- | Newtonsoft.JObject | 5.449 μs | 1.4272 μs | 0.0782 μs | 16.18 KB
- | JsonEverything.JsonNode | 7.147 μs | 3.7089 μs | 0.2033 μs | 18.32 KB
- | | | | |
+ | JsonCraft.JsonElement | 1.924 μs | 0.1844 μs | 0.0101 μs | 3.3 KB
+ | Hyperbee.JsonElement | 2.331 μs | 0.8201 μs | 0.0450 μs | 4.18 KB
+ | JsonCons.JsonElement | 2.776 μs | 0.5326 μs | 0.0292 μs | 5.58 KB
+ | Hyperbee.JsonNode | 3.377 μs | 0.4035 μs | 0.0221 μs | 8.08 KB
+ | Newtonsoft.JObject | 4.779 μs | 2.3452 μs | 0.1285 μs | 16.18 KB
+ | JsonEverything.JsonNode | 6.403 μs | 1.9211 μs | 0.1053 μs | 18.32 KB
+ | | | | |
| `$.store.book[?(@.category == 'fiction')]`
- | JsonCraft.JsonElement | 2.243 μs | 1.6372 μs | 0.0897 μs | 3.38 KB
- | JsonCons.JsonElement | 2.800 μs | 0.8079 μs | 0.0443 μs | 5.01 KB
- | Hyperbee.JsonElement | 2.825 μs | 2.4544 μs | 0.1345 μs | 4.34 KB
- | Hyperbee.JsonNode | 3.391 μs | 3.0949 μs | 0.1696 μs | 8.2 KB
- | Newtonsoft.JObject | 5.009 μs | 0.9350 μs | 0.0513 μs | 15.74 KB
- | JsonEverything.JsonNode | 7.002 μs | 0.9434 μs | 0.0517 μs | 16.49 KB
- | | | | |
+ | JsonCraft.JsonElement | 2.038 μs | 0.5141 μs | 0.0282 μs | 3.38 KB
+ | Hyperbee.JsonElement | 2.317 μs | 0.2970 μs | 0.0163 μs | 4.34 KB
+ | JsonCons.JsonElement | 2.643 μs | 0.8319 μs | 0.0456 μs | 5.01 KB
+ | Hyperbee.JsonNode | 3.393 μs | 0.3912 μs | 0.0214 μs | 8.2 KB
+ | Newtonsoft.JObject | 4.663 μs | 1.3455 μs | 0.0737 μs | 15.74 KB
+ | JsonEverything.JsonNode | 6.502 μs | 4.8220 μs | 0.2643 μs | 16.49 KB
+ | | | | |
| `$.store.book[?(@.price < 10)].title`
- | JsonCraft.JsonElement | 2.357 μs | 1.1758 μs | 0.0644 μs | 3.37 KB
- | Hyperbee.JsonElement | 2.496 μs | 1.2422 μs | 0.0681 μs | 4.35 KB
- | JsonCons.JsonElement | 2.954 μs | 1.3447 μs | 0.0737 μs | 5.18 KB
- | Hyperbee.JsonNode | 3.466 μs | 0.7381 μs | 0.0405 μs | 8.09 KB
- | Newtonsoft.JObject | 5.209 μs | 1.2339 μs | 0.0676 μs | 15.89 KB
- | JsonEverything.JsonNode | 7.547 μs | 1.3411 μs | 0.0735 μs | 17.38 KB
- | | | | |
+ | JsonCraft.JsonElement | 2.349 μs | 0.1454 μs | 0.0080 μs | 3.37 KB
+ | Hyperbee.JsonElement | 2.379 μs | 0.2508 μs | 0.0137 μs | 4.35 KB
+ | JsonCons.JsonElement | 3.008 μs | 1.7216 μs | 0.0944 μs | 5.18 KB
+ | Hyperbee.JsonNode | 3.453 μs | 0.6436 μs | 0.0353 μs | 8.09 KB
+ | Newtonsoft.JObject | 4.762 μs | 1.8678 μs | 0.1024 μs | 15.89 KB
+ | JsonEverything.JsonNode | 6.891 μs | 1.2944 μs | 0.0709 μs | 17.38 KB
+ | | | | |
| `$.store.book[?(@.price > 10 && @.price < 20)]`
- | JsonCraft.JsonElement | 2.798 μs | 1.2832 μs | 0.0703 μs | 3.82 KB
- | Hyperbee.JsonElement | 3.067 μs | 1.9850 μs | 0.1088 μs | 5.37 KB
- | Hyperbee.JsonNode | 3.827 μs | 2.2293 μs | 0.1222 μs | 9.14 KB
- | JsonCons.JsonElement | 4.398 μs | 3.5937 μs | 0.1970 μs | 6.23 KB
- | Newtonsoft.JObject | 5.358 μs | 2.0125 μs | 0.1103 μs | 16.69 KB
- | JsonEverything.JsonNode | 9.003 μs | 2.3392 μs | 0.1282 μs | 22.27 KB
- | | | | |
+ | JsonCraft.JsonElement | 2.637 μs | 0.3234 μs | 0.0177 μs | 3.82 KB
+ | Hyperbee.JsonElement | 2.730 μs | 0.9871 μs | 0.0541 μs | 5.37 KB
+ | JsonCons.JsonElement | 3.726 μs | 0.1036 μs | 0.0057 μs | 6.23 KB
+ | Hyperbee.JsonNode | 4.091 μs | 0.3535 μs | 0.0194 μs | 9.14 KB
+ | Newtonsoft.JObject | 5.167 μs | 2.3846 μs | 0.1307 μs | 16.69 KB
+ | JsonEverything.JsonNode | 8.309 μs | 1.7991 μs | 0.0986 μs | 22.02 KB
+ | | | | |
| `$.store.book[?@.price == 8.99]`
- | Hyperbee.JsonElement | 2.291 μs | 1.2891 μs | 0.0707 μs | 4.15 KB
- | JsonCons.JsonElement | 2.826 μs | 1.0191 μs | 0.0559 μs | 4.97 KB
- | Hyperbee.JsonNode | 3.630 μs | 3.3549 μs | 0.1839 μs | 7.89 KB
- | JsonEverything.JsonNode | 6.450 μs | 1.0062 μs | 0.0552 μs | 15.47 KB
- | JsonCraft.JsonElement | NA | NA | NA | NA
- | Newtonsoft.JObject | NA | NA | NA | NA
- | | | | |
+ | Hyperbee.JsonElement | 2.249 μs | 0.4713 μs | 0.0258 μs | 4.15 KB
+ | JsonCons.JsonElement | 2.763 μs | 1.0265 μs | 0.0563 μs | 4.97 KB
+ | Hyperbee.JsonNode | 3.416 μs | 2.2807 μs | 0.1250 μs | 7.89 KB
+ | JsonEverything.JsonNode | 6.221 μs | 5.2637 μs | 0.2885 μs | 15.47 KB
+ | JsonCraft.JsonElement | NA | NA | NA | NA
+ | Newtonsoft.JObject | NA | NA | NA | NA
+ | | | | |
| `$.store.book['category','author']`
- | JsonCraft.JsonElement | 1.650 μs | 0.2189 μs | 0.0120 μs | 2.95 KB
- | JsonCons.JsonElement | 1.862 μs | 0.1098 μs | 0.0060 μs | 3.61 KB
- | Hyperbee.JsonElement | 1.988 μs | 0.8489 μs | 0.0465 μs | 2.61 KB
- | JsonEverything.JsonNode | 2.622 μs | 0.8004 μs | 0.0439 μs | 5.41 KB
- | Hyperbee.JsonNode | 3.215 μs | 1.1826 μs | 0.0648 μs | 6.42 KB
- | Newtonsoft.JObject | 4.681 μs | 0.5122 μs | 0.0281 μs | 14.85 KB
- | | | | |
+ | JsonCraft.JsonElement | 1.575 μs | 0.1797 μs | 0.0099 μs | 2.95 KB
+ | Hyperbee.JsonElement | 1.931 μs | 0.2480 μs | 0.0136 μs | 2.61 KB
+ | JsonCons.JsonElement | 1.955 μs | 0.6808 μs | 0.0373 μs | 3.61 KB
+ | JsonEverything.JsonNode | 2.794 μs | 4.9383 μs | 0.2707 μs | 5.41 KB
+ | Hyperbee.JsonNode | 2.973 μs | 1.8205 μs | 0.0998 μs | 6.42 KB
+ | Newtonsoft.JObject | 4.169 μs | 1.0726 μs | 0.0588 μs | 14.85 KB
+ | | | | |
| `$.store.book[*].author`
- | JsonCraft.JsonElement | 1.729 μs | 0.7445 μs | 0.0408 μs | 2.63 KB
- | JsonCons.JsonElement | 1.909 μs | 0.4640 μs | 0.0254 μs | 3.55 KB
- | Hyperbee.JsonElement | 1.993 μs | 0.3660 μs | 0.0201 μs | 3.05 KB
- | Hyperbee.JsonNode | 2.885 μs | 2.4990 μs | 0.1370 μs | 6.83 KB
- | Newtonsoft.JObject | 4.894 μs | 6.5976 μs | 0.3616 μs | 14.64 KB
- | JsonEverything.JsonNode | 5.893 μs | 1.3873 μs | 0.0760 μs | 12.45 KB
- | | | | |
+ | JsonCraft.JsonElement | 1.718 μs | 0.1185 μs | 0.0065 μs | 2.63 KB
+ | Hyperbee.JsonElement | 1.910 μs | 0.2440 μs | 0.0134 μs | 3.05 KB
+ | JsonCons.JsonElement | 1.972 μs | 1.2539 μs | 0.0687 μs | 3.55 KB
+ | Hyperbee.JsonNode | 2.945 μs | 0.7789 μs | 0.0427 μs | 6.83 KB
+ | Newtonsoft.JObject | 4.415 μs | 1.5198 μs | 0.0833 μs | 14.64 KB
+ | JsonEverything.JsonNode | 5.322 μs | 0.6684 μs | 0.0366 μs | 12.45 KB
+ | | | | |
| `$.store.book[*]`
- | JsonCraft.JsonElement | 1.578 μs | 0.8516 μs | 0.0467 μs | 2.45 KB
- | JsonCons.JsonElement | 1.692 μs | 0.8482 μs | 0.0465 μs | 3.35 KB
- | Hyperbee.JsonElement | 1.738 μs | 0.3719 μs | 0.0204 μs | 2.65 KB
- | Hyperbee.JsonNode | 1.923 μs | 0.7320 μs | 0.0401 μs | 3.17 KB
- | JsonEverything.JsonNode | 3.526 μs | 0.0963 μs | 0.0053 μs | 6.61 KB
- | Newtonsoft.JObject | 4.752 μs | 0.2905 μs | 0.0159 μs | 14.49 KB
- | | | | |
+ | JsonCraft.JsonElement | 1.428 μs | 0.1454 μs | 0.0080 μs | 2.45 KB
+ | Hyperbee.JsonElement | 1.707 μs | 0.3096 μs | 0.0170 μs | 2.65 KB
+ | JsonCons.JsonElement | 1.725 μs | 1.0244 μs | 0.0562 μs | 3.35 KB
+ | Hyperbee.JsonNode | 1.948 μs | 0.1280 μs | 0.0070 μs | 3.17 KB
+ | JsonEverything.JsonNode | 3.429 μs | 3.3142 μs | 0.1817 μs | 6.61 KB
+ | Newtonsoft.JObject | 4.222 μs | 0.6171 μs | 0.0338 μs | 14.49 KB
+ | | | | |
| `$.store.book[0,1]`
- | Hyperbee.JsonElement | 1.560 μs | 0.6522 μs | 0.0358 μs | 2.41 KB
- | JsonCraft.JsonElement | 1.675 μs | 0.3241 μs | 0.0178 μs | 2.64 KB
- | JsonCons.JsonElement | 1.910 μs | 0.3014 μs | 0.0165 μs | 3.73 KB
- | Hyperbee.JsonNode | 1.976 μs | 1.1111 μs | 0.0609 μs | 2.97 KB
- | JsonEverything.JsonNode | 3.071 μs | 0.1558 μs | 0.0085 μs | 6.07 KB
- | Newtonsoft.JObject | 4.870 μs | 0.8053 μs | 0.0441 μs | 14.59 KB
- | | | | |
+ | Hyperbee.JsonElement | 1.542 μs | 0.2708 μs | 0.0148 μs | 2.41 KB
+ | JsonCraft.JsonElement | 1.570 μs | 1.4388 μs | 0.0789 μs | 2.64 KB
+ | Hyperbee.JsonNode | 1.862 μs | 0.2584 μs | 0.0142 μs | 2.97 KB
+ | JsonCons.JsonElement | 1.922 μs | 0.6784 μs | 0.0372 μs | 3.73 KB
+ | JsonEverything.JsonNode | 3.016 μs | 0.8618 μs | 0.0472 μs | 6.07 KB
+ | Newtonsoft.JObject | 4.287 μs | 1.0252 μs | 0.0562 μs | 14.59 KB
+ | | | | |
| `$.store.book[0].title`
- | Hyperbee.JsonElement | 1.515 μs | 0.1457 μs | 0.0080 μs | 2.17 KB
- | JsonCraft.JsonElement | 1.713 μs | 1.1282 μs | 0.0618 μs | 2.51 KB
- | JsonCons.JsonElement | 1.869 μs | 0.0938 μs | 0.0051 μs | 3.3 KB
- | Hyperbee.JsonNode | 1.945 μs | 0.2311 μs | 0.0127 μs | 3.6 KB
- | JsonEverything.JsonNode | 3.451 μs | 0.4020 μs | 0.0220 μs | 7.38 KB
- | Newtonsoft.JObject | 4.706 μs | 1.4286 μs | 0.0783 μs | 14.62 KB
- | | | | |
+ | Hyperbee.JsonElement | 1.457 μs | 0.3260 μs | 0.0179 μs | 2.17 KB
+ | JsonCraft.JsonElement | 1.768 μs | 1.8446 μs | 0.1011 μs | 2.51 KB
+ | JsonCons.JsonElement | 1.808 μs | 0.5749 μs | 0.0315 μs | 3.3 KB
+ | Hyperbee.JsonNode | 1.926 μs | 0.6973 μs | 0.0382 μs | 3.63 KB
+ | JsonEverything.JsonNode | 3.203 μs | 0.4522 μs | 0.0248 μs | 7.38 KB
+ | Newtonsoft.JObject | 4.559 μs | 3.8857 μs | 0.2130 μs | 14.62 KB
+ | | | | |
| `$.store.book[0]`
- | Hyperbee.JsonElement | 1.392 μs | 0.6219 μs | 0.0341 μs | 2.17 KB
- | JsonCraft.JsonElement | 1.570 μs | 0.2170 μs | 0.0119 μs | 2.44 KB
- | JsonCons.JsonElement | 1.783 μs | 0.9320 μs | 0.0511 μs | 3.21 KB
- | Hyperbee.JsonNode | 1.870 μs | 0.6578 μs | 0.0361 μs | 2.83 KB
- | JsonEverything.JsonNode | 2.832 μs | 0.6614 μs | 0.0363 μs | 5.68 KB
- | Newtonsoft.JObject | 4.697 μs | 0.9290 μs | 0.0509 μs | 14.48 KB
- | | | | |
+ | Hyperbee.JsonElement | 1.349 μs | 0.5027 μs | 0.0276 μs | 2.17 KB
+ | JsonCraft.JsonElement | 1.493 μs | 0.5471 μs | 0.0300 μs | 2.44 KB
+ | Hyperbee.JsonNode | 1.657 μs | 0.3633 μs | 0.0199 μs | 2.86 KB
+ | JsonCons.JsonElement | 1.733 μs | 0.3863 μs | 0.0212 μs | 3.21 KB
+ | JsonEverything.JsonNode | 2.670 μs | 0.6862 μs | 0.0376 μs | 5.68 KB
+ | Newtonsoft.JObject | 4.155 μs | 1.3012 μs | 0.0713 μs | 14.48 KB
+ | | | | |
| `$`
- | Hyperbee.JsonElement | 1.316 μs | 0.7199 μs | 0.0395 μs | 2.17 KB
- | JsonCraft.JsonElement | 1.368 μs | 0.0907 μs | 0.0050 μs | 2.22 KB
- | JsonEverything.JsonNode | 1.438 μs | 0.1670 μs | 0.0092 μs | 1.88 KB
- | Hyperbee.JsonNode | 1.440 μs | 0.2725 μs | 0.0149 μs | 1.75 KB
- | JsonCons.JsonElement | 1.456 μs | 0.1789 μs | 0.0098 μs | 2.94 KB
- | Newtonsoft.JObject | 4.331 μs | 1.0036 μs | 0.0550 μs | 13.98 KB
+ | JsonCraft.JsonElement | 1.299 μs | 0.3820 μs | 0.0209 μs | 2.22 KB
+ | Hyperbee.JsonElement | 1.312 μs | 0.2933 μs | 0.0161 μs | 2.17 KB
+ | Hyperbee.JsonNode | 1.322 μs | 0.3885 μs | 0.0213 μs | 1.75 KB
+ | JsonEverything.JsonNode | 1.361 μs | 0.2123 μs | 0.0116 μs | 1.88 KB
+ | JsonCons.JsonElement | 1.477 μs | 0.6836 μs | 0.0375 μs | 2.94 KB
+ | Newtonsoft.JObject | 3.864 μs | 0.4926 μs | 0.0270 μs | 13.98 KB
Benchmarks with issues:
JsonPathParseAndSelectEvaluator.JsonCraft.JsonElement: ShortRun(IterationCount=3, LaunchCount=1, WarmupCount=3) [Filter=$..book[?@.isbn]]
diff --git a/test/Hyperbee.Json.Cts/Hyperbee.Json.Cts.csproj b/test/Hyperbee.Json.Cts/Hyperbee.Json.Cts.csproj
index 5a4ab99..c8d8175 100644
--- a/test/Hyperbee.Json.Cts/Hyperbee.Json.Cts.csproj
+++ b/test/Hyperbee.Json.Cts/Hyperbee.Json.Cts.csproj
@@ -1,22 +1,19 @@
- net8.0;net10.0
- enable
enable
-
false
true
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
+
@@ -28,12 +25,9 @@
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
+
diff --git a/test/Hyperbee.Json.Tests/Hyperbee.Json.Tests.csproj b/test/Hyperbee.Json.Tests/Hyperbee.Json.Tests.csproj
index 3f2ae69..f3ad172 100644
--- a/test/Hyperbee.Json.Tests/Hyperbee.Json.Tests.csproj
+++ b/test/Hyperbee.Json.Tests/Hyperbee.Json.Tests.csproj
@@ -1,6 +1,5 @@
- net8.0;net10.0
false
Hyperbee.Json.Tests
@@ -8,21 +7,18 @@
-
-
-
-
-
+
+
+
+
+
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
+
\ No newline at end of file
diff --git a/version.json b/version.json
index ede6b9f..5d95921 100644
--- a/version.json
+++ b/version.json
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json",
- "version": "3.0.7",
+ "version": "3.1-alpha",
"publicReleaseRefSpec": [
"^refs/heads/main$",
"^refs/heads/hotfix$",