mirror of
https://github.com/nlohmann/json.git
synced 2026-11-04 11:49:22 +00:00
The baseline is now develop 9c349b1d7c with every open non-draft pull
request merged, including #5968, #5970, #5971, #5975, #5976, #5978,
#5979, #5980, #5981 and #5982. The suite was rerun on 11-01 with every
step repeated when the load rose above 5 while it ran; the comparison
with other libraries and the held-out files were rerun on 10-31.
- suite: 3.0x geometric mean (median 2.9x); Appendix B, the overview
and the distribution regenerated
- timeline endpoint, Appendix D and the cliffs figure updated
- the held-out figure compares json_document with the fastest other
library
- new paragraphs for the pull requests listed above
Signed-off-by: Niels Lohmann <mail@nlohmann.me>
71 KiB
71 KiB
| 1 | index | commit | date | pr | subject | parse_twitter | parse_citm | parse_canada | parse_citm_compact | parse_twitter_ifstream | accept_twitter | dump_twitter | dump_citm | dump_canada | dump4_citm | from_cbor_twitter | to_cbor_twitter | copy_destroy_citm | equal_citm | view_parse_twitter | view_parse_citm | view_parse_canada |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 0 | 55f93686c0 | 2025-04-11 | Merge branch 'release/3.12.0' | 3571.487 | 8219.609 | 17049.073 | 4366.792 | 3846.006 | 2394.213 | 1441.213 | 1375.446 | 7510.989 | 1917.809 | 3463.281 | 695.524 | 1643.327 | 1956.891 | ||||
| 3 | 1 | 1705bfe914 | 2025-04-11 | 4727 | :bookmark: set version to 3.12.0 (#4727) | 3589.331 | 8245.422 | 17079.250 | 4422.711 | 3894.787 | 2397.597 | 1440.546 | 1377.745 | 7514.698 | 1922.371 | 3498.997 | 695.559 | 1655.240 | 1967.301 | |||
| 4 | 2 | 4cca3b9cb2 | 2025-04-13 | 4738 | Fix warning and add emscripten CI step (#4738) | 3559.657 | 8195.105 | 17066.291 | 4373.011 | 3794.269 | 2388.900 | 1419.182 | 1355.724 | 7420.703 | 1912.038 | 3468.667 | 664.214 | 1631.610 | 1939.475 | |||
| 5 | 3 | 96c1b52f1c | 2025-04-15 | 4742 | Fix conversion to std::optional (#4742) | 3573.838 | 8157.276 | 16993.208 | 4383.656 | 3858.927 | 2395.092 | 1438.169 | 1372.208 | 7497.776 | 1925.481 | 3482.185 | 667.895 | 1633.619 | 1946.687 | |||
| 6 | 4 | 88c92e605c | 2025-04-16 | 4744 | Fix compilation failure and warnings with NVHPC (#4744) | 3563.149 | 8039.911 | 16922.739 | 4381.927 | 3768.560 | 2385.086 | 1407.564 | 1345.578 | 7370.063 | 1897.474 | 3462.010 | 662.955 | 1623.286 | 1925.804 | |||
| 7 | 5 | c67d538274 | 2025-04-17 | 4749 | Fix C4702 warning and extend MSVC CI job (#4749) | 3585.422 | 8251.057 | 17050.448 | 4400.542 | 3896.586 | 2390.655 | 1440.391 | 1371.722 | 7453.474 | 1921.277 | 3478.523 | 667.911 | 1636.206 | 1939.531 | |||
| 8 | 6 | 756ca22ec5 | 2025-04-23 | 4736 | Provide fallback for missing `char8_t` support (#4736) | 3559.146 | 8139.703 | 17085.114 | 4387.658 | 3856.745 | 2392.849 | 1424.997 | 1370.599 | 7477.537 | 1907.661 | 3484.427 | 665.541 | 1634.156 | 1957.401 | |||
| 9 | 7 | 6b9199382b | 2025-04-27 | 4763 | Add missing header (#4763) | 3541.323 | 8077.761 | 17011.636 | 4359.183 | 3842.380 | 2396.686 | 1421.116 | 1363.737 | 7431.375 | 1902.909 | 3474.250 | 664.442 | 1625.644 | 1934.732 | |||
| 10 | 8 | 3b02afb9d9 | 2025-04-28 | 4760 | Specialize char_traits for std::byte to fix from_msgpack (fixes #4756) (#4760) | 3583.070 | 8198.146 | 17134.698 | 4381.743 | 3899.872 | 2409.185 | 1440.233 | 1380.810 | 7504.838 | 1921.781 | 3500.125 | 666.078 | 1657.207 | 1966.036 | |||
| 11 | 9 | eef76c200e | 2025-04-28 | 4764 | Make library work with C++20 modules (#4764) | 3528.529 | 8080.458 | 16936.656 | 4330.570 | 3764.287 | 2363.848 | 1407.851 | 1358.079 | 7356.239 | 1897.423 | 3455.287 | 665.194 | 1632.255 | 1937.675 | |||
| 12 | 10 | dff2b4756c | 2025-04-29 | 4765 | fix: BJData size calculation overflow (#4765) | 3553.706 | 8141.375 | 17047.511 | 4360.144 | 3797.070 | 2389.756 | 1417.737 | 1364.718 | 7454.313 | 1921.962 | 3479.878 | 666.456 | 1644.760 | 1944.696 | |||
| 13 | 11 | 9110918cf8 | 2025-05-04 | 4748 | Fix typos (#4748) | 3563.682 | 8176.427 | 17239.354 | 4398.055 | 3891.669 | 2399.782 | 1441.669 | 1387.133 | 7516.073 | 1925.323 | 3483.271 | 669.348 | 1647.760 | 1957.747 | |||
| 14 | 12 | 46e7cd3dc2 | 2025-05-16 | 4775 | Replace deprecated std::is_trivial in C++26 (#4775) | 3565.242 | 8195.396 | 17135.646 | 4373.479 | 3851.604 | 2392.258 | 1418.425 | 1370.958 | 7464.854 | 1909.844 | 3485.046 | 665.606 | 1643.155 | 1952.329 | |||
| 15 | 13 | 828c891427 | 2025-05-16 | 4786 | Extend type_name() to invalid type (#4786) | 3549.573 | 8103.761 | 17066.198 | 4359.911 | 3804.849 | 2389.121 | 1428.584 | 1366.405 | 7424.838 | 1914.434 | 3452.497 | 667.452 | 1632.750 | 1928.324 | |||
| 16 | 14 | 4b17f90f65 | 2025-05-22 | 4609 | Add `ignore_trailing_commas` option (#4609) | 3544.662 | 8132.052 | 16997.375 | 4344.592 | 3825.765 | 2382.755 | 1408.435 | 1367.468 | 7460.448 | 1924.522 | 3434.062 | 733.089 | 1631.356 | 1891.572 | |||
| 17 | 15 | b19f058465 | 2025-06-01 | 4802 | Encode infinity and NaN as float for MsgPack and CBOR (#4802) | 3550.020 | 8126.438 | 17350.885 | 4327.596 | 3825.419 | 2389.356 | 1409.422 | 1376.649 | 7363.802 | 1921.226 | 3441.081 | 683.190 | 1624.144 | 1886.388 | |||
| 18 | 16 | cf16c5ab9f | 2025-06-02 | 4805 | Use binary_t::value_type (#4805) | 3551.735 | 8143.521 | 17153.291 | 4309.477 | 3829.229 | 2387.640 | 1428.550 | 1385.585 | 7415.271 | 1932.347 | 3425.838 | 657.735 | 1631.586 | 1888.954 | |||
| 19 | 17 | d70e46bc65 | 2025-06-25 | 4830 | :bug: add missing header to input_adapters.hpp (#4830) | 3546.448 | 8157.469 | 17062.364 | 4335.300 | 3805.221 | 2382.796 | 1422.863 | 1382.581 | 7411.401 | 1928.676 | 3433.190 | 691.842 | 1632.972 | 1892.453 | |||
| 20 | 18 | 30d27df61c | 2025-07-31 | 4871 | Fix CI (#4871) | 3570.015 | 8150.859 | 17070.625 | 4330.078 | 3806.505 | 2400.329 | 1434.947 | 1381.065 | 7425.718 | 1931.556 | 3429.632 | 656.545 | 1633.515 | 1892.916 | |||
| 21 | 19 | efcf9efb4f | 2025-08-02 | 4873 | Fixes #4854 Explicitly handle nullptr in sax_parse (#4873) | 3520.381 | 8050.719 | 16883.042 | 4331.820 | 3861.906 | 2368.069 | 1408.435 | 1375.954 | 7363.651 | 1898.466 | 3432.992 | 653.988 | 1634.141 | 1894.948 | |||
| 22 | 20 | 4106af8d92 | 2025-08-20 | 4896 | :rotating_light: suppress cppcoreguidelines-c-copy-assignment-signature,misc-unconventional-assign-operator (#4896) | 3540.599 | 8175.265 | 17010.438 | 4345.182 | 3866.833 | 2393.935 | 1435.100 | 1389.496 | 7453.724 | 1945.791 | 3433.169 | 657.446 | 1638.434 | 1900.360 | |||
| 23 | 21 | a63795caf1 | 2025-10-22 | 4791 | :rotating_light: avoid deprecation warning (#4791) | 3550.057 | 8174.646 | 16983.177 | 4363.521 | 3888.336 | 2393.305 | 1423.434 | 1376.334 | 7469.407 | 1936.013 | 3447.279 | 666.706 | 1645.354 | 1903.707 | |||
| 24 | 22 | 1cc56b2dcd | 2025-10-23 | 4957 | Address CWG issue 2521 (#4957) | 3557.396 | 8119.651 | 17072.730 | 4351.881 | 3834.739 | 2386.097 | 1442.100 | 1393.245 | 7474.463 | 1932.315 | 3446.883 | 660.187 | 1638.983 | 1896.000 | |||
| 25 | 23 | 54be9b04f0 | 2025-10-23 | 4960 | :page_facing_up: update REUSE (#4960) | 3554.625 | 8098.287 | 17115.219 | 4324.578 | 3809.950 | 2390.791 | 1424.488 | 1376.715 | 7422.828 | 1913.208 | 3424.693 | 659.030 | 1623.405 | 1892.756 | |||
| 26 | 24 | 29913ca760 | 2025-10-25 | 4963 | Add char8_t* overload for _json and _json_pointer (#4963) | 3544.899 | 8169.203 | 17007.844 | 4353.594 | 3797.630 | 2392.108 | 1423.032 | 1375.216 | 7349.787 | 1909.897 | 3428.771 | 655.625 | 1635.273 | 1891.018 | |||
| 27 | 25 | 515d994acb | 2026-01-01 | 5044 | :page_facing_up: adjust year (#5044) | 3524.610 | 8059.521 | 16949.416 | 4313.508 | 3773.750 | 2364.742 | 1410.427 | 1372.988 | 7382.438 | 1915.502 | 3403.159 | 643.968 | 1618.972 | 1884.213 | |||
| 28 | 26 | 8f75700141 | 2026-01-11 | 4958 | support types convertible to string_view as JSON keys (#4958) | 3546.757 | 8142.599 | 17103.386 | 4327.739 | 3825.990 | 2388.540 | 1420.515 | 1379.309 | 7413.062 | 1924.540 | 3433.677 | 658.266 | 1628.079 | 1890.759 | |||
| 29 | 27 | 457bc283ff | 2026-01-12 | 5039 | fix(cbor): reject overflowing negative integers (#5039) | 3508.883 | 8077.291 | 16930.011 | 4305.982 | 3785.698 | 2378.693 | 1425.526 | 1366.111 | 7407.042 | 1929.142 | 3478.909 | 657.722 | 1636.304 | 1944.681 | |||
| 30 | 28 | e3014f162a | 2026-01-13 | 5052 | Fix conversion to std::optional (#5052) | 3547.995 | 8140.052 | 17010.031 | 4321.914 | 3797.807 | 2385.856 | 1430.414 | 1386.202 | 7407.260 | 1930.403 | 3462.213 | 657.829 | 1629.579 | 1932.066 | |||
| 31 | 29 | 5ed07097fa | 2026-01-13 | 5050 | Fix -Wtautological-constant-out-of-range-compare in serializer (#5050) | 3544.136 | 8180.208 | 17033.209 | 4339.591 | 3799.779 | 2391.940 | 1427.870 | 1387.871 | 7368.765 | 1922.321 | 3454.938 | 659.367 | 1630.707 | 1959.722 | |||
| 32 | 30 | 25f48639c7 | 2026-01-23 | 5016 | Reference tuple from json (#5016) | 3563.180 | 8209.037 | 17030.969 | 4388.675 | 3895.086 | 2392.088 | 1430.666 | 1393.853 | 7528.567 | 1934.347 | 3481.351 | 677.234 | 1645.418 | 1957.591 | |||
| 33 | 31 | f8eee1bb79 | 2026-02-07 | 5071 | Annotate unreachable comment-scanner switch paths to satisfy C26819 (#5071) | 3508.000 | 8128.750 | 16958.959 | 4315.235 | 3797.237 | 2371.963 | 1425.146 | 1374.867 | 7453.381 | 1930.211 | 3456.508 | 658.568 | 1629.188 | 1909.736 | |||
| 34 | 32 | fd17b0889e | 2026-05-08 | 5139 | Remove nullptr safety check from sax_parse functions (#5139) | 3544.101 | 8033.021 | 16963.292 | 4334.102 | 3800.736 | 2382.583 | 1419.050 | 1361.745 | 7357.073 | 1907.153 | 3429.315 | 657.041 | 1618.815 | 1937.829 | |||
| 35 | 33 | 62f3b41b30 | 2026-05-08 | 5090 | fix: treat single-element brace-init as copy/move instead of wrapping in array (#5074) (#5090) | 3550.323 | 8168.713 | 17060.031 | 4349.417 | 3794.110 | 2380.583 | 1416.822 | 1361.182 | 7369.651 | 1897.717 | 3466.731 | 659.297 | 1631.463 | 1941.905 | |||
| 36 | 34 | 4fad446897 | 2026-05-10 | 5162 | docs: add IDs to @requirement tags to fix Doxygen autolinking (#5162) | 3545.440 | 8031.891 | 17069.448 | 4324.698 | 3802.862 | 2383.513 | 1422.768 | 1384.602 | 7325.776 | 1917.606 | 3469.787 | 659.011 | 1631.296 | 1940.370 | |||
| 37 | 35 | a0a4e7cc0b | 2026-05-13 | 5152 | Add front methods to json_pointers (implements #4889) (#5152) | 3582.898 | 8215.010 | 17034.448 | 4345.515 | 3891.513 | 2396.572 | 1432.733 | 1395.714 | 7554.119 | 1934.008 | 3484.859 | 659.298 | 1642.314 | 1957.356 | |||
| 38 | 36 | 93e49decbd | 2026-05-14 | 5167 | Fix incomplete-type error in set_parents with ordered_json (#5167) | 3555.224 | 8147.771 | 17017.073 | 4320.846 | 3831.318 | 2386.750 | 1435.840 | 1385.578 | 7436.864 | 1927.483 | 3466.508 | 658.409 | 1632.724 | 1939.528 | |||
| 39 | 37 | 7192763f15 | 2026-05-14 | 5163 | Fix compile error when using nlohmann ordered_map with WITH_DEFAULT macros (#5163) | 3520.675 | 8039.145 | 16892.291 | 4303.448 | 3769.198 | 2363.337 | 1410.030 | 1364.679 | 7380.797 | 1913.285 | 3437.278 | 660.130 | 1630.738 | 1943.235 | |||
| 40 | 38 | 5a05627b1f | 2026-05-14 | 5169 | :rotating_light: fix warning (#5169) | 3600.555 | 8160.854 | 16979.031 | 4324.070 | 3887.823 | 2389.157 | 1430.983 | 1387.106 | 7509.984 | 1912.601 | 3473.713 | 663.279 | 1652.982 | 1958.774 | |||
| 41 | 39 | bb5404bb86 | 2026-05-15 | 5164 | Fix GCC C++20 modules compilation #5103 (#5164) | 3543.823 | 8120.266 | 17015.395 | 4349.300 | 3794.880 | 2364.178 | 1414.408 | 1374.548 | 7484.218 | 1920.495 | 3444.266 | 699.326 | 1626.241 | 1954.688 | |||
| 42 | 40 | b1bb9fce0c | 2026-05-15 | 3929 | Fix for printing long doubles bug in dump_float (#3929) | 3549.378 | 8089.891 | 16934.927 | 4313.310 | 3824.802 | 2386.958 | 1412.164 | 1385.425 | 7417.869 | 1930.513 | 3461.151 | 651.557 | 1618.735 | 1944.450 | |||
| 43 | 41 | cba5dc0ed8 | 2026-05-16 | 4563 | New macros for the named JSON convertor generation (#4563) | 3544.657 | 8168.182 | 16990.886 | 4327.688 | 3806.963 | 2370.975 | 1421.629 | 1390.206 | 7454.151 | 1919.284 | 3452.456 | 677.413 | 1623.622 | 1941.921 | |||
| 44 | 42 | 47202c804a | 2026-05-18 | 5171 | Add missing overload to ordered_map::find (#5171) | 3527.542 | 8168.312 | 17141.989 | 4409.456 | 3887.378 | 2397.007 | 1428.765 | 1387.033 | 7495.604 | 1935.710 | 3485.088 | 660.155 | 1648.977 | 1951.430 | |||
| 45 | 43 | 58cfecf7f7 | 2026-05-18 | 5151 | Serialize enum (#5151) | 3521.302 | 8100.104 | 16805.489 | 4288.463 | 3763.971 | 2381.494 | 1408.713 | 1383.059 | 7328.261 | 1915.202 | 3440.372 | 648.726 | 1617.661 | 1922.608 | |||
| 46 | 44 | 584e6b1cfb | 2026-05-22 | 5187 | Fix: update() parent pointers not updated after recursive merge with JSON_DIAGNOSTICS (#5187) | 3550.639 | 8083.463 | 17055.198 | 4326.833 | 3804.257 | 2381.519 | 1432.039 | 1381.986 | 7377.844 | 1915.159 | 3460.750 | 656.873 | 1631.527 | 1940.953 | |||
| 47 | 45 | 02dfbea39d | 2026-06-17 | 5209 | added explicit instantiations of 'has_from_json' and 'has_to_json' for std_fs::path (#5209) | 3552.209 | 8215.474 | 17167.760 | 4338.404 | 3845.144 | 2398.026 | 1425.012 | 1387.629 | 7458.614 | 1931.388 | 3475.343 | 658.183 | 1644.329 | 1958.324 | |||
| 48 | 46 | fc1df0b7db | 2026-06-23 | 5172 | :recycle: remove unnecessary if (#5172) | 3562.088 | 8175.531 | 17044.042 | 4336.583 | 3863.651 | 2404.695 | 1425.872 | 1389.434 | 7523.855 | 1914.128 | 3481.000 | 653.259 | 1639.515 | 1957.649 | |||
| 49 | 47 | c5b2b26fdc | 2026-06-29 | 5217 | :memo: fix docs (#5217) | 3526.825 | 8052.307 | 17000.011 | 4343.963 | 3793.412 | 2388.194 | 1416.706 | 1374.177 | 7361.646 | 1904.008 | 3463.919 | 658.322 | 1627.765 | 1921.887 | |||
| 50 | 48 | b7566c6293 | 2026-06-30 | 5161 | Harden JSON_HAS_RANGES detection for incomplete C++20 ranges implementations (#5161) | 3538.995 | 8071.787 | 17120.751 | 4318.797 | 3772.445 | 2384.008 | 1421.440 | 1385.239 | 7419.292 | 1898.929 | 3431.466 | 647.948 | 1602.258 | 1928.644 | |||
| 51 | 49 | adf78d3a76 | 2026-06-30 | 5215 | Minor: unique_ptr template resolution workaround for MSVC (#5215) | 3550.380 | 8138.026 | 17036.802 | 4366.062 | 3842.430 | 2389.536 | 1426.658 | 1385.609 | 7428.787 | 1915.233 | 3467.188 | 658.332 | 1636.158 | 1942.556 | |||
| 52 | 50 | 272411c5e6 | 2026-06-30 | 5218 | Overwork project infrastructure (#5218) | 3547.487 | 8087.250 | 16962.198 | 4341.969 | 3793.831 | 2387.509 | 1420.888 | 1381.072 | 7450.078 | 1930.003 | 3466.193 | 659.676 | 1631.329 | 1943.043 | |||
| 53 | 51 | 730b57775d | 2026-07-01 | 5222 | :bug: avoid assertion in patch (#5222) | 3539.912 | 8169.771 | 17027.229 | 4345.151 | 3790.753 | 2376.552 | 1421.263 | 1386.717 | 7399.985 | 1923.237 | 3455.722 | 653.609 | 1630.914 | 1934.028 | |||
| 54 | 52 | ca49ab6123 | 2026-07-02 | 5223 | Extend value to arrays when using JSON pointers (#5223) | 3550.341 | 8113.787 | 16951.313 | 4346.805 | 3793.097 | 2391.224 | 1409.695 | 1380.075 | 7374.073 | 1926.401 | 3458.438 | 659.382 | 1629.387 | 1941.306 | |||
| 55 | 53 | 8d7e0046f4 | 2026-07-02 | 5224 | Add std::format and fmt support (#5224) | 3546.935 | 8170.406 | 16968.927 | 4346.906 | 3814.956 | 2387.612 | 1424.861 | 1386.542 | 7350.765 | 1900.376 | 3461.177 | 662.476 | 1633.858 | 1930.434 | |||
| 56 | 54 | 31dd15b258 | 2026-07-02 | 5221 | Fix ambiguous static_cast (#5221) | 3551.945 | 8213.000 | 17131.271 | 4373.620 | 3845.763 | 2393.074 | 1438.633 | 1385.769 | 7471.146 | 1927.804 | 3486.568 | 662.015 | 1631.810 | 1958.901 | |||
| 57 | 55 | eed1587000 | 2026-07-05 | 5234 | Reconstruct lexer diagnostics lazily for seekable input (#120) (#5234) | 3145.909 | 5311.094 | 15381.843 | 4292.961 | 3851.260 | 1966.833 | 1422.598 | 1365.461 | 7443.276 | 1920.467 | 3467.060 | 702.832 | 1637.587 | 1905.758 | |||
| 58 | 56 | 83c87cb9e0 | 2026-07-05 | 5233 | Read binary strings/blobs in bulk chunks with a memcpy fast path (#5233) | 3141.867 | 5259.485 | 15454.959 | 4326.664 | 3797.198 | 1987.623 | 1406.492 | 1372.765 | 7424.729 | 1899.726 | 2363.895 | 667.502 | 1630.097 | 1888.392 | |||
| 59 | 57 | acf076a677 | 2026-07-06 | 5238 | Fix ADL leak of nlohmann::detail through basic_json's default base class (#5238) | 3152.153 | 5277.073 | 15291.407 | 4338.828 | 3839.331 | 1995.524 | 1429.960 | 1365.917 | 7456.776 | 1907.928 | 2398.016 | 670.257 | 1627.590 | 1897.997 | |||
| 60 | 58 | c05c5e229b | 2026-07-07 | 5241 | Add missing copyright notices to SBOM (#5241) | 3147.485 | 5268.865 | 15319.584 | 4321.823 | 3796.972 | 1981.167 | 1432.689 | 1371.264 | 7465.416 | 1918.083 | 2388.154 | 667.119 | 1630.745 | 1891.583 | |||
| 61 | 59 | 366f3d26e5 | 2026-07-08 | 5235 | Replace snprintf with a branch-free writer for \uXXXX escapes (#5235) | 3127.641 | 5272.302 | 15425.239 | 4340.459 | 3850.357 | 1997.957 | 1459.603 | 1356.461 | 7509.703 | 1899.916 | 2366.966 | 668.383 | 1624.981 | 1889.145 | |||
| 62 | 60 | f8e99e856c | 2026-07-09 | 5248 | Fix nvcc CUDA 12.0/12.1 C++20 ranges parse error (#3907) (#5248) | 3132.099 | 5226.375 | 15164.510 | 4301.901 | 3769.651 | 1967.647 | 1456.759 | 1365.810 | 7530.724 | 1908.635 | 2381.610 | 683.815 | 1616.699 | 1879.795 | |||
| 63 | 61 | 855f511db4 | 2026-07-09 | 5250 | Fix stale Clang -Weverything suppression comments; drop -Wno-missing-noreturn (#5250) | 3126.792 | 5208.338 | 15352.520 | 4293.596 | 3800.544 | 1969.497 | 1458.601 | 1329.851 | 7372.849 | 1876.404 | 2368.894 | 662.173 | 1603.881 | 1874.673 | |||
| 64 | 62 | d0a43141ea | 2026-07-09 | 5253 | Fix #3868: Remove operator!= to enable P2468R2 rewritten candidate synthesis (#5253) | 3165.182 | 5270.458 | 15479.031 | 4302.729 | 3845.646 | 1989.231 | 1474.135 | 1343.312 | 7443.282 | 1887.909 | 2392.523 | 670.395 | 1634.871 | 1894.474 | |||
| 65 | 63 | b630f5e9c7 | 2026-07-10 | 5260 | Fix container input_adapter SFINAE for lvalue-only ADL begin/end (#5260) | 3128.117 | 5263.807 | 15375.677 | 4330.544 | 3819.953 | 1982.196 | 1454.088 | 1339.062 | 7364.683 | 1877.699 | 2361.482 | 666.486 | 1616.514 | 1920.626 | |||
| 66 | 64 | c60217e801 | 2026-07-11 | 5205 | fix: support constructing json from C++20 range views (#4916) (#5205) | 3117.539 | 5206.552 | 15308.166 | 4320.513 | 3798.713 | 1983.458 | 1447.072 | 1350.950 | 7357.213 | 1875.632 | 2340.731 | 662.905 | 1633.357 | 1934.261 | |||
| 67 | 65 | fe2bcc080f | 2026-07-11 | 5266 | Custom BinaryType direct assignment (#5266) | 3174.528 | 5284.562 | 15383.645 | 4328.120 | 3895.086 | 1996.913 | 1478.427 | 1355.569 | 7512.115 | 1899.236 | 2398.490 | 672.118 | 1642.910 | 1967.660 | |||
| 68 | 66 | ca76c37650 | 2026-07-11 | 5265 | Add iterator+sentinel tests and docs for binary deserializers (#5265) | 3134.265 | 5218.021 | 15352.521 | 4306.284 | 3791.612 | 1967.824 | 1451.953 | 1358.685 | 7508.828 | 1891.697 | 2377.848 | 665.474 | 1631.495 | 1934.907 | |||
| 69 | 67 | c197feff81 | 2026-07-12 | 5268 | Extend memcpy fast path to sized sentinels (e.g. std::counted_iterator) (#5268) | 3116.271 | 5207.146 | 15415.771 | 4272.443 | 3815.851 | 1984.966 | 1451.103 | 1341.093 | 7328.037 | 1865.385 | 2383.169 | 664.494 | 1617.967 | 1915.428 | |||
| 70 | 68 | 1c5a953de5 | 2026-07-19 | 5276 | reject unpaired UTF-16 surrogates in wide-string input (#5276) | 3155.360 | 5299.631 | 15419.812 | 4302.089 | 3853.104 | 1987.259 | 1468.653 | 1349.665 | 7549.432 | 1911.365 | 2457.555 | 680.311 | 1653.282 | 1955.673 | |||
| 71 | 69 | 3565f40229 | 2026-07-20 | 5284 | reject negative UBJSON/BJData string length (#5284) | 3170.456 | 5301.698 | 15404.416 | 4351.226 | 3893.594 | 1997.034 | 1470.907 | 1358.245 | 7491.480 | 1909.601 | 2401.384 | 671.260 | 1639.865 | 1963.899 | |||
| 72 | 70 | 9a3ebb9456 | 2026-07-23 | 5287 | validate BSON document size against the bytes read (#5287) | 3157.646 | 5264.062 | 15305.271 | 4338.672 | 3839.643 | 1987.196 | 1461.356 | 1351.630 | 7444.791 | 1890.626 | 2398.503 | 665.262 | 1655.798 | 1930.268 | |||
| 73 | 71 | 8ec98e2c9e | 2026-07-27 | 5313 | adding cleanups to bson writer (#5313) | 3150.448 | 5268.948 | 15445.927 | 4308.612 | 3805.005 | 1989.643 | 1466.348 | 1349.591 | 7326.453 | 1895.842 | 2393.278 | 708.164 | 1644.025 | 1946.652 | |||
| 74 | 72 | 2e23687092 | 2026-07-28 | 5314 | to_bson() silently emits corrupt documents when a length exceeds INT32_MAX (#5314) | 3146.534 | 5254.547 | 15445.250 | 4304.008 | 3798.620 | 1986.260 | 1459.735 | 1345.534 | 7517.651 | 1903.996 | 2395.155 | 674.344 | 1644.565 | 1952.682 | |||
| 75 | 73 | 868506dcc0 | 2026-07-30 | 5335 | Fix CBOR half-float assertion bounds (#5335) | 3167.086 | 5267.068 | 15397.979 | 4351.011 | 3883.135 | 2003.345 | 1468.939 | 1360.483 | 7455.230 | 1909.055 | 2406.305 | 679.942 | 1643.646 | 1945.639 | |||
| 76 | 74 | dd24e2dffd | 2026-07-30 | 5332 | check all BSON reads and add an EOF check for booleans (#5332) | 3138.315 | 5284.833 | 15399.166 | 4310.513 | 3847.630 | 1980.682 | 1464.104 | 1344.108 | 7445.146 | 1901.512 | 2400.532 | 670.850 | 1635.196 | 1900.946 | |||
| 77 | 75 | fd72ecfc8c | 2026-07-31 | 5301 | validate ndarray element types in write_bjdata_ndarray (#5301) | 3164.662 | 5262.141 | 15399.010 | 4287.271 | 3849.318 | 1988.186 | 1460.688 | 1353.767 | 7458.380 | 1893.669 | 2398.485 | 668.466 | 1644.018 | 1921.615 | |||
| 78 | 76 | bc48951128 | 2026-07-31 | 5323 | Fix UBJSON high-precision floating-point overflow handling (#5323) | 3155.628 | 5289.864 | 15474.375 | 4324.253 | 3888.966 | 2015.068 | 1477.846 | 1354.622 | 7480.730 | 1905.566 | 2415.428 | 668.997 | 1641.776 | 1911.819 | |||
| 79 | 77 | d94cbd99dc | 2026-07-31 | 5274 | reject CBOR array/map length equal to the indefinite-length marker (#5274) | 3144.041 | 5272.193 | 15466.980 | 4338.735 | 3848.849 | 1999.231 | 1459.129 | 1358.119 | 7507.307 | 1901.807 | 2394.972 | 667.016 | 1635.960 | 1899.878 | |||
| 80 | 78 | 2222d386c9 | 2026-07-31 | 5339 | fix: check CBOR tagged subtype reads (#5339) | 3095.768 | 5137.792 | 15064.146 | 4258.977 | 3755.229 | 1965.900 | 1454.890 | 1338.066 | 7399.068 | 1883.624 | 2358.193 | 660.190 | 1618.172 | 1939.713 | |||
| 81 | 79 | 585929bff9 | 2026-08-03 | 5289 | Fix Clang deprecation warning for json_pointer operator== with ordered_json (#5289) | 3142.341 | 5259.360 | 15258.271 | 4275.479 | 3807.672 | 1969.704 | 1453.688 | 1337.633 | 7451.037 | 1879.447 | 2364.966 | 661.560 | 1635.617 | 1945.709 | |||
| 82 | 80 | 5f121d8c50 | 2026-08-03 | 5336 | avoid sign extension in char_traits<signed char>::to_int_type (#5336) | 3145.000 | 5264.880 | 15441.521 | 4269.632 | 3796.781 | 1983.497 | 1440.810 | 1325.232 | 7427.750 | 1880.047 | 2361.899 | 663.772 | 1621.595 | 1912.378 | |||
| 83 | 81 | 68f0722a19 | 2026-08-03 | 5342 | remove discarded array from parent object in end_array (#5342) | 3161.273 | 5269.907 | 15312.469 | 4335.433 | 3840.510 | 1995.965 | 1465.745 | 1355.934 | 7474.901 | 1895.483 | 2401.197 | 657.397 | 1634.791 | 1901.902 | |||
| 84 | 82 | dca9d49a33 | 2026-08-05 | 5348 | reject out-of-range code points in UTF-32 wide-string input (#5348) | 3119.753 | 5210.979 | 15209.260 | 4273.984 | 3799.034 | 1995.297 | 1459.456 | 1342.982 | 7431.646 | 1891.478 | 2370.364 | 653.618 | 1633.585 | 1882.753 | |||
| 85 | 83 | 9a091d2b82 | 2026-08-05 | 5362 | Do not write BJData ndarrays whose size overflows std::size_t (#5362) | 3137.381 | 5257.312 | 15286.084 | 4308.500 | 3805.325 | 1995.140 | 1468.138 | 1354.729 | 7510.088 | 1893.036 | 2384.577 | 659.394 | 1628.260 | 1890.245 | |||
| 86 | 84 | d5647e6a3b | 2026-08-05 | 5355 | Resolve the TODO(niels) in get_ubjson_string (#5355) | 3121.278 | 5249.927 | 15246.011 | 4292.737 | 3800.490 | 1967.087 | 1443.762 | 1333.226 | 7368.953 | 1862.131 | 2347.852 | 644.647 | 1623.909 | 1889.958 | |||
| 87 | 85 | bacdabd176 | 2026-08-05 | 5361 | Fix start_pos() for strings containing escape sequences (#5361) | 3114.653 | 5251.619 | 15253.907 | 4331.818 | 3786.156 | 1960.676 | 1442.388 | 1330.247 | 7354.724 | 1863.306 | 2351.588 | 650.781 | 1623.543 | 1886.671 | |||
| 88 | 86 | 1c136a66c4 | 2026-08-06 | 5363 | Move the CBOR doc block to the function it describes (#5363) | 3124.274 | 5209.615 | 15411.897 | 4293.320 | 3812.156 | 1982.854 | 1457.653 | 1345.680 | 7422.343 | 1884.848 | 2387.050 | 656.076 | 1627.620 | 1878.737 | |||
| 89 | 87 | 6285225fd0 | 2026-08-12 | 5211 | Fix integer comparison bug (#5211) | 3159.557 | 5291.323 | 15395.395 | 4329.836 | 3867.200 | 1989.476 | 1456.052 | 1359.795 | 7526.860 | 1879.642 | 2396.137 | 659.077 | 1638.176 | 1900.416 | |||
| 90 | 88 | b5378e8deb | 2026-08-19 | 5331 | Fix CBOR tag handlers not recognizing tags 0-5 and 21-23 (#5331) | 3172.476 | 5239.812 | 15479.917 | 4295.539 | 3871.289 | 2003.439 | 1473.447 | 1343.742 | 7516.875 | 1888.412 | 2400.572 | 645.588 | 1641.621 | 1886.531 | |||
| 91 | 89 | 2f025f401e | 2026-08-25 | 5380 | Throw other_error.502 when UBJSON use_type is set without use_size (#5380) | 3155.873 | 5190.312 | 15144.406 | 4286.388 | 3793.805 | 1968.199 | 1442.240 | 1340.929 | 7373.610 | 1860.543 | 2370.570 | 648.906 | 1631.207 | 1893.750 | |||
| 92 | 90 | 35705d79d8 | 2026-08-28 | 5414 | Fix update(merge_objects=true) throwing on primitive-to-object merge (#5414) | 3169.029 | 5252.578 | 15387.292 | 4340.690 | 3893.646 | 1979.616 | 1472.286 | 1361.543 | 7491.302 | 1903.909 | 2401.404 | 659.396 | 1641.697 | 1912.409 | |||
| 93 | 91 | 137a40b9aa | 2026-09-05 | 5459 | Compare integers with floats exactly instead of widening the integer (#5459) | 3134.229 | 5259.349 | 15404.541 | 4300.146 | 3846.646 | 1992.155 | 1467.919 | 1351.774 | 7467.146 | 1887.255 | 2391.467 | 660.347 | 1631.735 | 1891.751 | |||
| 94 | 92 | 3c875683a5 | 2026-09-05 | 5461 | Make diff() linear when an array shrinks (#5461) | 3141.068 | 5259.000 | 15271.166 | 4319.659 | 3797.088 | 1983.450 | 1455.354 | 1354.676 | 7444.860 | 1891.687 | 2389.333 | 657.163 | 1632.998 | 1887.016 | |||
| 95 | 93 | 09b6b6b5ba | 2026-09-05 | 5455 | Fix to_bjdata() emitting unparsable output when _ArraySize_ is not an array (#5455) | 3161.542 | 5253.047 | 15311.718 | 4291.388 | 3834.264 | 1992.744 | 1472.685 | 1357.680 | 7409.479 | 1889.287 | 2389.501 | 698.680 | 1628.237 | 1888.705 | |||
| 96 | 94 | faa35cc647 | 2026-09-09 | 5484 | Skip integer conversion in accept()/SAX validation when the value is unused (#5484) | 3103.654 | 5222.453 | 15458.573 | 4215.765 | 3804.320 | 1935.161 | 1468.660 | 1353.499 | 7452.052 | 1883.191 | 2383.524 | 654.441 | 1631.700 | 1885.664 | |||
| 97 | 95 | 6d86cc0f6b | 2026-09-09 | 5490 | Speed up whitespace skipping in the lexer (#5490) | 3181.328 | 5276.318 | 15307.312 | 4262.771 | 3877.401 | 1977.062 | 1465.196 | 1356.119 | 7594.177 | 1906.814 | 2388.615 | 684.926 | 1636.950 | 1893.526 | |||
| 98 | 96 | c05347dd54 | 2026-09-09 | 5475 | Undefine the four JSON_HEDLEY_* macros that leak after including json.hpp (#5475) | 3147.932 | 5156.625 | 15347.990 | 4217.505 | 3871.812 | 1982.807 | 1458.787 | 1354.934 | 7639.328 | 1879.823 | 2370.342 | 674.625 | 1637.257 | 1903.903 | |||
| 99 | 97 | d6660cf718 | 2026-09-09 | 5485 | Route hand-rolled diagnostic pragmas through Hedley (#5485) | 3116.151 | 5215.531 | 15257.499 | 4189.979 | 3835.023 | 1974.111 | 1459.363 | 1342.996 | 7553.802 | 1887.698 | 2379.999 | 669.934 | 1635.350 | 1877.492 | |||
| 100 | 98 | c9477ccf91 | 2026-09-09 | 5496 | Throw when JSON Patch remove's target path resolves through a primitive or null parent (#5496) | 3138.841 | 5258.401 | 15315.417 | 4201.008 | 3874.682 | 1967.630 | 1446.393 | 1335.060 | 7542.708 | 1870.111 | 2390.141 | 668.484 | 1634.138 | 1886.981 | |||
| 101 | 99 | 8c38e270b5 | 2026-09-09 | 5497 | Reject JSON Patch move when from is a proper prefix of path (#5497) | 3183.820 | 5280.000 | 15346.969 | 4222.164 | 3839.596 | 1970.753 | 1470.428 | 1351.838 | 7515.344 | 1895.809 | 2389.731 | 673.696 | 1633.247 | 1889.546 | |||
| 102 | 100 | a316738cfa | 2026-09-09 | 5471 | Add JSON_HEDLEY_WARN_UNUSED_RESULT to the current accept() overloads (#5471) | 3175.891 | 5281.302 | 15397.062 | 4240.576 | 3934.333 | 1981.765 | 1475.890 | 1353.387 | 7625.104 | 1896.181 | 2401.097 | 669.729 | 1646.133 | 1895.638 | |||
| 103 | 101 | c9f1d2d646 | 2026-09-09 | 5477 | Broaden JSON_HEDLEY_WARN_UNUSED_RESULT coverage to pure query functions (#5477) | 3171.706 | 5286.880 | 15430.844 | 4264.242 | 3880.943 | 1979.990 | 1472.289 | 1357.283 | 7569.854 | 1904.026 | 2407.487 | 671.673 | 1641.521 | 1889.053 | |||
| 104 | 102 | 8e26b9d4b3 | 2026-09-09 | 5495 | Make contains(json_pointer) return false instead of throwing on unrepresentable array-index tokens (#5495) | 3163.789 | 5240.755 | 15337.698 | 4226.154 | 3880.956 | 1971.912 | 1475.322 | 1357.125 | 7632.281 | 1904.060 | 2401.190 | 678.863 | 1638.371 | 1903.385 | |||
| 105 | 103 | b17c272f46 | 2026-09-09 | 5472 | Reserve capacity in from_json() object conversion when the target container supports it (#5472) | 3152.899 | 5257.645 | 15401.000 | 4210.846 | 3885.123 | 1989.159 | 1476.637 | 1359.851 | 7639.396 | 1898.981 | 2408.243 | 670.075 | 1633.528 | 1894.086 | |||
| 106 | 104 | 3e2de32226 | 2026-09-10 | 5516 | Remove unused iomanip include (#5516) | 3141.349 | 5253.657 | 15364.074 | 4203.969 | 3847.620 | 1968.422 | 1455.035 | 1352.754 | 7582.494 | 1882.051 | 2371.814 | 663.504 | 1630.172 | 1870.223 | |||
| 107 | 105 | d69fb8654d | 2026-09-10 | 5501 | Return the parsed value by move from from_cbor() and friends (#5501) | 3133.485 | 5231.662 | 15309.926 | 4183.200 | 3835.662 | 1971.125 | 1462.447 | 1349.563 | 7479.136 | 1904.202 | 1595.991 | 661.519 | 1630.278 | 1883.994 | |||
| 108 | 106 | 4a93aa4e2f | 2026-09-10 | 5283 | Speed up parsing of contiguous input (numbers, strings, UTF-8) (#5283) | 1963.879 | 4221.308 | 11609.531 | 3278.497 | 3857.880 | 927.779 | 1483.726 | 1357.793 | 7483.343 | 1906.916 | 1481.419 | 676.438 | 1643.746 | 1895.551 | |||
| 109 | 107 | bfb07786cd | 2026-09-10 | 5473 | Fix to_bjdata() silently truncating out-of-range _ArrayData_ elements (#5473) | 1941.894 | 4204.971 | 11726.688 | 3264.055 | 3808.784 | 923.797 | 1453.071 | 1351.760 | 7458.125 | 1891.470 | 1473.508 | 662.164 | 1633.043 | 1888.548 | |||
| 110 | 108 | ff80ed3295 | 2026-09-11 | 5285 | Speed up dump(), and keep it from overflowing the stack (#5285) | 1939.289 | 4175.541 | 11781.291 | 3233.302 | 3816.101 | 914.071 | 441.200 | 540.473 | 6895.041 | 852.214 | 1478.197 | 656.635 | 1632.675 | 1885.303 | |||
| 111 | 109 | da42a627dc | 2026-09-11 | 5449 | Stop dump() from heap-allocating its output adapter per call (#5449) | 1937.658 | 4200.966 | 11639.198 | 3235.493 | 3827.695 | 909.901 | 448.948 | 537.008 | 6909.036 | 839.027 | 1479.968 | 659.210 | 1643.621 | 1878.065 | |||
| 112 | 110 | 1dc1d09fc6 | 2026-09-11 | 5457 | Do not search a container for the value the callback rejected (#5457) | 1937.459 | 4140.078 | 11576.803 | 3271.838 | 3845.193 | 924.316 | 450.148 | 539.031 | 6848.776 | 844.624 | 1470.333 | 671.563 | 1645.624 | 1900.347 | |||
| 113 | 111 | fae364db24 | 2026-09-11 | 5458 | Move the scanned string into the value instead of copying it (#5458) | 1986.146 | 4110.787 | 11757.157 | 3150.932 | 3830.550 | 918.517 | 442.629 | 539.606 | 6913.104 | 843.920 | 1417.037 | 655.259 | 1628.224 | 1892.991 | |||
| 114 | 112 | dd50f0eb16 | 2026-09-11 | 5502 | Stop CBOR indefinite-length strings from recursing per chunk (#5502) | 1987.853 | 4033.182 | 11613.834 | 3116.378 | 3841.164 | 915.943 | 442.366 | 539.480 | 6864.130 | 836.458 | 1431.035 | 656.146 | 1599.574 | 1885.858 | |||
| 115 | 113 | 4bb2de8cc5 | 2026-09-11 | 5503 | Reject a nested BJData ndarray dimension vector where it is read (#5503) | 1981.298 | 4086.276 | 11569.240 | 3141.539 | 3829.870 | 923.087 | 444.038 | 539.863 | 6800.724 | 835.434 | 1429.637 | 655.448 | 1628.999 | 1879.300 | |||
| 116 | 114 | 44f8ec30e9 | 2026-09-11 | 5504 | Bound UBJSON optimized arrays of a valueless type (#5504) | 2005.265 | 4092.265 | 11730.198 | 3130.635 | 3863.992 | 925.033 | 448.222 | 542.323 | 6893.078 | 849.901 | 1437.855 | 662.171 | 1638.306 | 1896.324 | |||
| 117 | 115 | 0dd8ca9023 | 2026-09-11 | 5505 | Read MessagePack containers without recursing per nesting level (#5505) | 2019.983 | 4105.305 | 11862.979 | 3142.581 | 3891.601 | 927.092 | 447.942 | 543.936 | 6939.963 | 845.634 | 1442.889 | 656.578 | 1637.512 | 1897.815 | |||
| 118 | 116 | 91ab3e81f5 | 2026-09-11 | 5506 | Read CBOR containers and tags without recursing per nesting level (#5506) | 1986.334 | 4039.961 | 11554.094 | 3118.761 | 3783.101 | 912.504 | 440.410 | 534.894 | 6831.943 | 834.661 | 1439.061 | 655.287 | 1615.619 | 1869.912 | |||
| 119 | 117 | a14619b354 | 2026-09-11 | 5507 | Read UBJSON and BJData containers without recursing per nesting level (#5507) | 2011.959 | 4095.868 | 11782.688 | 3135.264 | 3873.604 | 926.014 | 447.638 | 541.304 | 6905.838 | 846.051 | 1468.512 | 664.161 | 1629.083 | 1898.772 | |||
| 120 | 118 | 0452641c18 | 2026-09-11 | 5508 | Read BSON documents without recursing per nesting level (#5508) | 1974.160 | 4043.887 | 11662.938 | 3095.011 | 3832.744 | 916.007 | 439.914 | 534.149 | 6904.453 | 835.615 | 1450.792 | 648.298 | 1616.917 | 1874.133 | |||
| 121 | 119 | aa391dc0a5 | 2026-09-11 | 5520 | Fix two develop CI regressions: dump() nodiscard warning and binary-reader const-correctness (#5520) | 2003.010 | 4068.010 | 11771.364 | 3137.266 | 3825.247 | 924.668 | 442.416 | 539.478 | 6847.083 | 841.996 | 1460.659 | 649.378 | 1633.738 | 1885.897 | |||
| 122 | 120 | a50c2537eb | 2026-09-12 | 5476 | Reserve capped array capacity in json_sax_dom_parser::start_array() for definite-length binary arrays (#5476) | 1986.488 | 4063.883 | 11588.333 | 3077.995 | 3827.479 | 908.419 | 440.959 | 539.114 | 6806.177 | 833.555 | 1452.851 | 662.422 | 1627.995 | 1915.388 | |||
| 123 | 121 | c0b2878a44 | 2026-09-13 | 5493 | Swap diagnostic positions in basic_json::swap() (#5493) | 2010.881 | 4081.057 | 11734.730 | 3130.919 | 3882.258 | 925.490 | 450.092 | 542.953 | 6925.188 | 848.486 | 1480.051 | 698.636 | 1643.508 | 1933.941 | |||
| 124 | 122 | 1da2f68992 | 2026-09-14 | 5522 | Only reserve array capacity if the array type supports it (#5522) | 1972.122 | 4048.622 | 11775.062 | 3107.938 | 3803.528 | 909.385 | 441.204 | 535.885 | 6793.927 | 842.843 | 1446.330 | 658.787 | 1619.239 | 1899.164 | |||
| 125 | 123 | 6487678bc5 | 2026-09-15 | 5464 | Fix swap(array_t&)/swap(object_t&) to update parent pointers under JSON_DIAGNOSTICS (#5464) | 2023.028 | 4116.169 | 11737.438 | 3165.172 | 3893.266 | 924.912 | 448.959 | 541.529 | 6970.438 | 852.039 | 1483.231 | 689.631 | 1635.240 | 1937.356 | |||
| 126 | 124 | c72f37a40d | 2026-09-15 | 5443 | Support custom object/array types and improve template parameter handling (#5443) | 2001.617 | 4076.547 | 11666.583 | 3109.756 | 3918.206 | 923.197 | 450.592 | 542.266 | 6901.703 | 846.558 | 1468.284 | 660.116 | 1641.586 | 1905.840 | |||
| 127 | 125 | 502e9d66f6 | 2026-09-16 | 5479 | Fix to_bjdata() emitting the Draft-3-only 'B' marker in default Draft-2 mode (#5479) | 1970.935 | 4018.060 | 11445.500 | 3079.409 | 3809.050 | 910.459 | 444.217 | 539.291 | 6851.407 | 833.755 | 1444.697 | 698.040 | 1626.601 | 1889.024 | |||
| 128 | 126 | c41152e620 | 2026-09-16 | 5494 | Fall back to plain-object encoding when to_bjdata()'s _ArrayType_ annotation is not a string (#5494) | 1979.481 | 4054.688 | 11734.292 | 3085.542 | 3819.351 | 916.992 | 445.126 | 539.870 | 6853.005 | 833.190 | 1457.166 | 665.391 | 1629.586 | 1888.734 | |||
| 129 | 127 | e564136c22 | 2026-09-22 | 5465 | Make diff() account for member order in ordered_json objects (#5465) | 1970.519 | 4063.744 | 11605.198 | 3087.497 | 3848.867 | 915.695 | 447.051 | 539.711 | 6835.172 | 841.402 | 1452.004 | 664.560 | 1640.751 | 1890.473 | |||
| 130 | 128 | e485441123 | 2026-09-22 | 5466 | Restore a duplicate key's prior value when the callback rejects its new value (#5466) | 2012.920 | 4099.265 | 11796.895 | 3156.818 | 3913.812 | 931.464 | 451.403 | 541.419 | 6981.041 | 846.536 | 1469.521 | 704.138 | 1633.327 | 1905.709 | |||
| 131 | 129 | a2b19d6158 | 2026-09-22 | 5467 | Honor allow_exceptions=false for excessive array/object size (out_of_range.408) (#5467) | 1996.478 | 4084.422 | 11734.208 | 3129.099 | 3850.854 | 923.499 | 446.555 | 539.379 | 6949.427 | 842.029 | 1453.166 | 694.200 | 1631.133 | 1888.865 | |||
| 132 | 130 | d2c1a6a272 | 2026-09-22 | 5468 | Reject array insert(pos, first, last) iterators not pointing into an array (#5468) | 1983.767 | 4066.651 | 11618.667 | 3128.505 | 3848.427 | 914.900 | 447.603 | 541.973 | 6915.265 | 844.307 | 1458.762 | 677.699 | 1638.789 | 1892.443 | |||
| 133 | 131 | 0b20b7e622 | 2026-09-22 | 5469 | Reject MessagePack/BSON binary subtypes that don't fit their wire format (#5469) | 2010.548 | 4097.476 | 11681.218 | 3121.010 | 3866.146 | 925.619 | 448.533 | 540.786 | 6957.000 | 843.349 | 1463.518 | 658.302 | 1630.857 | 1902.522 | |||
| 134 | 132 | 1054b2097e | 2026-09-23 | 5286 | Speed up binary writing: value-type output sink + byte-swap number encoding (#5286) | 1989.739 | 4101.393 | 12034.438 | 3157.240 | 3853.987 | 910.115 | 449.084 | 555.970 | 6884.386 | 864.526 | 1471.905 | 656.635 | 1661.806 | 1926.233 | |||
| 135 | 133 | ed513715a8 | 2026-09-24 | 5534 | Document that a NUL byte in the input is treated as end of input (#5534) | 2016.236 | 4104.763 | 11906.323 | 3141.138 | 3936.240 | 916.611 | 455.397 | 562.053 | 6987.917 | 871.110 | 1475.622 | 657.877 | 1676.934 | 1936.557 | |||
| 136 | 134 | 56b3ee566c | 2026-09-24 | 5389 | Fix stack overflow when copying a deeply nested value (#5387) (#5389) | 1998.356 | 4051.206 | 11660.865 | 3101.107 | 3834.672 | 910.072 | 452.943 | 544.464 | 6908.974 | 849.212 | 1460.691 | 638.644 | 1650.749 | 1914.423 | |||
| 137 | 135 | 918da64657 | 2026-09-24 | 5542 | Keep BJData ndarray annotations that would not survive a round trip as objects (#5542) | 2003.009 | 4042.969 | 11517.375 | 3095.122 | 3815.360 | 908.444 | 448.415 | 539.423 | 6911.041 | 840.044 | 1449.543 | 671.530 | 1651.709 | 1908.408 | |||
| 138 | 136 | 8699de3064 | 2026-09-24 | 5555 | Stop allocating the BJData excluded-marker list per container (#5555) | 2001.718 | 4071.333 | 11686.427 | 3122.065 | 3796.757 | 900.895 | 447.123 | 539.918 | 6860.765 | 844.752 | 1444.435 | 646.608 | 1644.943 | 1879.295 | |||
| 139 | 137 | 2e91641de2 | 2026-09-24 | 5544 | Test JSON_BRACE_INIT_COPY_SEMANTICS for real, and fix one-element tuples under it (#5544) | 2004.785 | 4083.914 | 11662.270 | 3119.602 | 3917.914 | 922.465 | 454.869 | 547.631 | 6987.234 | 853.010 | 1469.612 | 649.946 | 1672.246 | 1913.098 | |||
| 140 | 138 | 7c90ec2323 | 2026-09-24 | 5546 | Hash deeply nested values without recursing per nesting level (#5546) | 1952.912 | 4071.159 | 11594.927 | 3117.497 | 3793.052 | 900.729 | 444.245 | 539.787 | 6854.406 | 841.264 | 1457.530 | 643.139 | 1638.578 | 1890.482 | |||
| 141 | 139 | 4daca40d7b | 2026-09-24 | 5547 | Merge deeply nested objects without recursing per nesting level (#5547) | 2008.226 | 4104.399 | 11619.542 | 3148.604 | 3918.175 | 921.207 | 457.191 | 547.553 | 6942.265 | 855.352 | 1464.974 | 651.924 | 1665.232 | 1915.869 | |||
| 142 | 140 | 01b53c8c15 | 2026-09-25 | 5552 | Keep JSON_DIAGNOSTICS parent pointers of ordered_json members after erase() and update() (#5552) | 1979.354 | 4061.378 | 11603.480 | 3098.586 | 3875.258 | 919.125 | 455.911 | 546.269 | 6940.026 | 849.511 | 1461.751 | 648.841 | 1660.978 | 1917.254 | |||
| 143 | 141 | abbe52d6de | 2026-09-25 | 5344 | Add JSON_PRECISE_STREAM_POSITION to leave the character that terminates a number in the stream (#5344) | 2001.170 | 4081.617 | 11653.531 | 3131.331 | 3876.208 | 915.153 | 453.436 | 546.720 | 6971.864 | 848.900 | 1463.182 | 647.946 | 1662.943 | 1906.246 | |||
| 144 | 142 | 02dd3e67f2 | 2026-09-25 | 5390 | Fix stack overflow and exponential runtime when comparing nested values (#5390) | 1987.861 | 4074.039 | 11596.000 | 3161.284 | 3901.497 | 919.541 | 447.553 | 543.948 | 6910.162 | 845.668 | 1455.759 | 664.224 | 1652.074 | 1930.575 | |||
| 145 | 143 | 465407f3ce | 2026-09-25 | 2818 | Improve error message for const fields (#2818) | 1975.274 | 4118.565 | 11863.448 | 3130.541 | 3880.764 | 910.767 | 452.904 | 545.363 | 6906.890 | 843.118 | 1459.728 | 645.770 | 1654.265 | 1934.900 | |||
| 146 | 144 | 632a5812a8 | 2026-09-25 | 5272 | Support zero-member types in NLOHMANN_DEFINE_TYPE_* macros (#4041) (#5272) | 1963.323 | 4021.526 | 11747.959 | 3102.006 | 3784.896 | 904.545 | 444.355 | 543.748 | 6840.604 | 841.416 | 1438.306 | 639.223 | 1649.816 | 1930.274 | |||
| 147 | 145 | d19f7f5dce | 2026-09-25 | 5185 | Fix BSON conformance issue (#5185) | 1958.606 | 4048.536 | 11541.011 | 3086.805 | 3817.875 | 900.452 | 446.001 | 544.071 | 6824.323 | 837.078 | 1971.245 | 641.271 | 1651.209 | 1934.647 | |||
| 148 | 146 | c60a0bc336 | 2026-09-25 | 5573 | Allocate the deep copy's key scratch space with the provided allocator (#5573) | 1965.216 | 4021.459 | 11630.855 | 3074.078 | 3807.258 | 902.782 | 444.394 | 542.562 | 6919.969 | 840.942 | 1975.668 | 645.827 | 1637.429 | 1918.607 | |||
| 149 | 147 | 1e44262091 | 2026-09-25 | 5560 | Make JSON_STRICT_NUL_HANDLING part of the ABI tag (#5560) | 1961.862 | 4069.617 | 11594.083 | 3117.500 | 3817.758 | 909.186 | 448.820 | 544.420 | 6845.802 | 844.016 | 1977.909 | 645.864 | 1651.269 | 1937.217 | |||
| 150 | 148 | 95e9a5931c | 2026-09-25 | 5553 | Write BSON in linear time, without recursing per nesting level (#5553) | 1965.832 | 4033.394 | 11589.364 | 3120.422 | 3792.091 | 905.110 | 446.984 | 543.328 | 6794.244 | 844.943 | 1991.659 | 640.188 | 1647.675 | 1928.562 | |||
| 151 | 149 | fe4a544c7e | 2026-09-27 | 5515 | handled when size exceed uint32 (#5515) | 1998.244 | 4047.208 | 11755.209 | 3091.776 | 3815.000 | 908.733 | 447.990 | 546.295 | 6903.084 | 850.946 | 1993.351 | 645.487 | 1654.343 | 1933.385 | |||
| 152 | 150 | 4fa95d9810 | 2026-09-27 | 5583 | Remove unreachable branches from the binary writer (#5583) | 1983.323 | 4038.331 | 11666.480 | 3092.841 | 3844.935 | 910.149 | 449.697 | 541.110 | 6840.583 | 830.604 | 1979.750 | 653.542 | 1650.670 | 1928.883 | |||
| 153 | 151 | 6178982b8d | 2026-09-27 | 5582 | Compare unordered objects by key below the nesting bound (#5582) | 1971.706 | 4073.498 | 11600.646 | 3132.700 | 3830.323 | 910.231 | 448.982 | 538.812 | 6836.770 | 846.149 | 2007.607 | 657.180 | 1653.089 | 1934.675 | |||
| 154 | 152 | f7972970a4 | 2026-09-27 | 5584 | Throw instead of writing MessagePack lengths beyond UINT32_MAX (#5584) | 1969.417 | 4013.021 | 11602.447 | 3083.552 | 3842.495 | 904.223 | 447.444 | 542.170 | 6862.735 | 839.628 | 2000.766 | 655.034 | 1653.006 | 1939.922 | |||
| 155 | 153 | 6bd106893a | 2026-09-27 | 5559 | Fix CBOR tag handling in cbor_tag_handler_t::store for non-binary items (#5559) | 1969.250 | 4034.693 | 11691.500 | 3119.171 | 3827.860 | 916.053 | 455.026 | 542.577 | 6886.360 | 839.718 | 2012.919 | 653.031 | 1651.090 | 1931.698 | |||
| 156 | 154 | 1e101ecac1 | 2026-09-27 | 2998 | Add BON8 support (#2998) | 1975.804 | 4082.375 | 11658.542 | 3192.828 | 3758.141 | 907.029 | 444.920 | 556.470 | 6844.698 | 849.276 | 1977.153 | 649.181 | 1645.306 | 1920.836 | |||
| 157 | 155 | 9e1a09eec0 | 2026-09-28 | 5594 | Name the key type when rejecting non-string CBOR/MessagePack map keys (#5594) | 2006.582 | 4151.784 | 11788.532 | 3156.156 | 3845.052 | 915.647 | 454.027 | 557.846 | 6814.282 | 864.094 | 2021.072 | 654.095 | 1663.051 | 1947.078 | |||
| 158 | 156 | fc03b9912e | 2026-09-28 | 5597 | Look up the locale decimal point at conversion time, not lexer construction (#5597) | 2020.431 | 4172.916 | 12716.958 | 3196.958 | 3909.774 | 910.001 | 449.314 | 547.334 | 6900.968 | 852.306 | 2048.019 | 665.843 | 1696.937 | 1982.586 | |||
| 159 | 157 | 5b9ffae8bb | 2026-09-30 | 5616 | Move the float conversion chain out of the lexer (#5616) | 1992.332 | 4167.328 | 12638.573 | 3212.515 | 3842.885 | 906.649 | 446.941 | 539.674 | 6952.672 | 839.042 | 2021.057 | 695.813 | 1684.689 | 1967.216 | |||
| 160 | 158 | d268eaa693 | 2026-09-30 | 5617 | Convert floats with Eisel-Lemire when std::from_chars is unavailable (#5617) | 1987.608 | 4086.125 | 11507.062 | 3170.013 | 3830.425 | 898.856 | 445.077 | 542.854 | 6919.568 | 839.210 | 2021.918 | 666.925 | 1701.466 | 1951.211 | |||
| 161 | 159 | 65af260117 | 2026-09-30 | 5609 | Move instead of deep-copy ordered_json values when an object grows (#5609) | 1998.981 | 4134.057 | 11592.855 | 3192.779 | 3863.005 | 904.702 | 446.575 | 539.685 | 6850.886 | 840.845 | 2035.646 | 680.331 | 1682.755 | 1968.744 | |||
| 162 | 160 | 6a8a7735ed | 2026-09-30 | 5614 | Do not throw in contains() for an empty array reference token (#5614) | 2008.447 | 4144.024 | 11612.176 | 3165.468 | 3842.060 | 905.045 | 443.941 | 539.755 | 6846.042 | 846.248 | 1998.713 | 669.752 | 1684.717 | 1953.487 | |||
| 163 | 161 | 0050d0f7a4 | 2026-09-30 | 5637 | Share one nesting depth limit between all bounded descents (#5637) | 2021.078 | 4170.581 | 11589.886 | 3224.963 | 3937.021 | 906.411 | 448.033 | 541.177 | 6911.391 | 848.641 | 2040.978 | 670.005 | 1703.593 | 1984.639 | |||
| 164 | 162 | 68beba727c | 2026-09-30 | 5679 | Fix from_json() for enums with underlying type bool (#5679) | 1986.468 | 4139.033 | 11632.833 | 3201.351 | 3798.006 | 888.464 | 438.471 | 535.903 | 6843.110 | 836.030 | 1996.109 | 685.053 | 1672.430 | 1940.598 | |||
| 165 | 163 | fc4c9c3446 | 2026-09-30 | 5680 | Fix clear() to also reset the subtype of a binary value (#5680) | 1972.561 | 4094.867 | 11540.157 | 3155.722 | 3833.925 | 893.243 | 445.764 | 539.739 | 6848.562 | 843.068 | 2016.293 | 664.788 | 1685.759 | 1965.342 | |||
| 166 | 164 | 678fd3017b | 2026-09-30 | 5681 | Fix element path for map/unordered_map JSON_DIAGNOSTICS errors (#5681) | 2014.783 | 4164.471 | 11563.614 | 3219.865 | 3891.917 | 892.727 | 445.945 | 542.044 | 6900.807 | 844.422 | 2034.323 | 669.901 | 1688.051 | 1981.601 | |||
| 167 | 165 | 6d7845d207 | 2026-09-30 | 5683 | Fix deprecated json_pointer/string operator== warning in value() (#5683) | 1965.197 | 4105.789 | 11501.364 | 3157.544 | 3800.289 | 898.122 | 445.399 | 539.685 | 6900.433 | 834.541 | 2000.133 | 652.354 | 1670.945 | 1960.876 | |||
| 168 | 166 | 42f89e3130 | 2026-09-30 | 5684 | Let to_json(std::optional<T>) propagate exceptions from T's to_json (#5684) | 2016.899 | 4156.430 | 11476.489 | 3216.315 | 3895.245 | 908.714 | 444.300 | 541.764 | 6923.422 | 839.459 | 2018.934 | 672.859 | 1689.306 | 1987.428 | |||
| 169 | 167 | 6218aa212b | 2026-09-30 | 5687 | Throw std::length_error for operator[](SIZE_MAX) instead of corrupting the array (#5687) | 1989.158 | 4149.156 | 11547.229 | 3193.015 | 3845.187 | 905.308 | 446.389 | 541.290 | 6853.266 | 843.028 | 2037.245 | 661.213 | 1681.390 | 1966.649 | |||
| 170 | 168 | 1151826508 | 2026-09-30 | 5691 | Take diff()'s fast path unless the object type reorders members (#5691) | 1991.280 | 4147.341 | 11570.312 | 3171.182 | 3847.333 | 904.510 | 441.250 | 539.803 | 6885.776 | 836.303 | 2018.693 | 665.307 | 1685.990 | 1970.057 | |||
| 171 | 169 | e444a66276 | 2026-09-30 | 5693 | Copy values before inserting an initializer list into an array (#5693) | 2000.774 | 4175.507 | 11546.979 | 3189.357 | 3841.169 | 897.455 | 442.384 | 539.493 | 6839.688 | 836.213 | 2014.519 | 667.390 | 1685.418 | 1968.991 | |||
| 172 | 170 | bfea6f36d3 | 2026-09-30 | 5694 | Fix to_msgpack() reading the inactive number union member (#5694) | 1997.465 | 4144.279 | 11549.781 | 3224.287 | 3855.120 | 899.475 | 441.995 | 539.924 | 6903.776 | 839.550 | 2019.396 | 664.487 | 1688.249 | 1954.211 | |||
| 173 | 171 | 5b11a0282c | 2026-09-30 | 5697 | Exchange the CustomBaseClass subobject in basic_json::swap() (#5697) | 1987.983 | 4074.349 | 11483.114 | 3174.632 | 3841.604 | 893.256 | 438.279 | 535.885 | 6866.641 | 834.328 | 1996.396 | 660.828 | 1676.300 | 1936.210 | |||
| 174 | 172 | 44a88d85be | 2026-09-30 | 5698 | Fix NLOHMANN_JSON_SERIALIZE_ENUM_STRICT's from_json message (#5698) | 1972.237 | 4125.945 | 11373.917 | 3158.716 | 3810.039 | 890.097 | 438.075 | 534.577 | 6867.432 | 842.045 | 2028.150 | 664.206 | 1681.353 | 1936.231 | |||
| 175 | 173 | bfe0f32d71 | 2026-09-30 | 5699 | Fix std::terminate and null pointer access in input_stream_adapter (#5699) | 2014.371 | 4159.779 | 11667.416 | 3200.425 | 3876.135 | 911.716 | 448.788 | 543.198 | 6932.657 | 852.397 | 2056.197 | 668.764 | 1699.573 | 1984.479 | |||
| 176 | 174 | 4bb1b14b06 | 2026-09-30 | 5702 | Trim the compiler-appended NUL from wide/UTF string literals too (#5702) | 1979.723 | 4105.685 | 11603.562 | 3180.932 | 3846.698 | 906.188 | 443.969 | 534.534 | 6837.479 | 840.588 | 2006.043 | 654.851 | 1672.289 | 1965.408 | |||
| 177 | 175 | 5bd766aa50 | 2026-09-30 | 5703 | Move to_bson's binary subtype check into calc_bson_sizes (#5703) | 1999.606 | 4183.386 | 11588.646 | 3192.771 | 3844.425 | 900.169 | 446.795 | 541.406 | 6888.114 | 847.107 | 2022.637 | 663.480 | 1686.702 | 1974.777 | |||
| 178 | 176 | 6ae17630a4 | 2026-09-30 | 5705 | Reject integral keys for contains(), find(), and count() at compile time (#5705) | 2000.405 | 4157.120 | 11551.656 | 3197.417 | 3891.646 | 903.558 | 448.544 | 541.553 | 6914.203 | 848.561 | 2042.578 | 663.661 | 1691.910 | 1974.341 | |||
| 179 | 177 | 7fd6895788 | 2026-09-30 | 5706 | Hide a discarded container's content from the parser callback (#5706) | 1971.987 | 4075.362 | 11463.219 | 3164.909 | 3797.453 | 889.534 | 443.974 | 535.026 | 6857.323 | 835.793 | 2025.343 | 651.970 | 1687.670 | 1951.428 | |||
| 180 | 178 | 66877675b1 | 2026-09-30 | 5719 | Check the iterator range for binary values in basic_json(first, last) (#5719) | 1970.369 | 4104.886 | 11534.635 | 3168.601 | 3796.291 | 897.271 | 444.655 | 538.917 | 6826.990 | 842.445 | 2016.962 | 650.099 | 1673.940 | 1953.693 | |||
| 181 | 179 | 2ea6d8c127 | 2026-09-30 | 5720 | Require the found key to equal the looked-up key when comparing objects (#5720) | 2015.556 | 4188.886 | 11567.125 | 3251.890 | 3863.818 | 903.970 | 448.691 | 540.422 | 6912.255 | 843.774 | 2044.479 | 653.832 | 1676.634 | 1951.959 | |||
| 182 | 180 | 67435c9c7e | 2026-09-30 | 5721 | Give a deep copy its type only after its container exists (#5721) | 1994.257 | 4160.658 | 11600.553 | 3218.367 | 3880.128 | 900.769 | 449.260 | 541.607 | 6899.448 | 841.635 | 2043.909 | 666.759 | 1694.646 | 1974.861 | |||
| 183 | 181 | 6fc0d501f3 | 2026-09-30 | 5610 | Move the user-defined string literals to <nlohmann/json_literals.hpp> and add JSON_NO_AUTOMATIC_UDLS (#5610) | 2021.715 | 4187.888 | 11647.594 | 3209.388 | 3925.060 | 911.591 | 450.961 | 544.303 | 6975.265 | 845.109 | 2049.853 | 670.295 | 1697.019 | 1987.428 | |||
| 184 | 182 | fdcc569eee | 2026-09-30 | 5692 | Use only documented StringType members in json_pointer (#5692) | 1965.264 | 4147.273 | 11378.188 | 3159.364 | 3787.758 | 889.399 | 447.397 | 535.062 | 6809.698 | 835.116 | 2015.202 | 656.241 | 1689.072 | 1955.238 | |||
| 185 | 183 | 6a073dbae4 | 2026-09-30 | 5695 | Give operator>> a strong exception-safety guarantee (#5695) | 2010.979 | 4211.982 | 11698.218 | 3205.401 | 3897.172 | 898.499 | 445.961 | 545.225 | 6898.870 | 847.042 | 2051.316 | 664.716 | 1706.401 | 1981.247 | |||
| 186 | 184 | 3b6ae43c53 | 2026-09-30 | 5598 | Add JSON_DISABLE_TUPLE_REFERENCE_CONVERSION to fix std::tuple conversions (#5598) | 2025.122 | 4195.468 | 11682.199 | 3204.529 | 3924.068 | 904.766 | 448.209 | 544.669 | 7041.276 | 849.103 | 2047.488 | 665.592 | 1695.987 | 1984.755 | |||
| 187 | 185 | 7d7055ec50 | 2026-09-30 | 5723 | Fix stack overflow converting deep values between specializations (#5723) | 1985.310 | 4117.099 | 11457.052 | 3157.591 | 3832.175 | 895.910 | 442.225 | 535.237 | 6864.375 | 833.653 | 2001.760 | 679.826 | 1674.819 | 1956.998 | |||
| 188 | 186 | 35802e78d6 | 2026-09-30 | 5735 | Remove dead Makefile targets; document macro_builder; tidy serve_header (#5735) | 2004.498 | 4163.065 | 11590.594 | 3184.810 | 3902.229 | 906.494 | 447.394 | 539.542 | 6923.969 | 845.596 | 2044.457 | 666.187 | 1692.019 | 1977.030 | |||
| 189 | 187 | c261578431 | 2026-09-30 | 5730 | Deduplicate binary reader/writer helpers and fix stale comments (#5730) | 1968.723 | 4154.789 | 11441.718 | 3160.367 | 3870.578 | 889.545 | 443.139 | 535.314 | 6850.886 | 837.281 | 2024.650 | 660.842 | 1691.628 | 1978.000 | |||
| 190 | 188 | 1d675cdb46 | 2026-09-30 | 5733 | Fix CI jobs that check less than they claim; move arm64 to GitHub (#5733) | 1995.704 | 4206.185 | 11691.125 | 3227.622 | 3966.104 | 909.748 | 449.770 | 541.566 | 6951.938 | 852.506 | 2009.592 | 663.701 | 1686.265 | 1983.285 | |||
| 191 | 189 | a32f61eb98 | 2026-09-30 | 5678 | Fix update() and merge_patch() when the argument is *this or one of its members (#5678) | 2014.810 | 4157.101 | 11636.135 | 3210.326 | 3924.659 | 899.344 | 448.133 | 541.371 | 6913.401 | 841.487 | 2038.263 | 667.515 | 1697.503 | 1980.686 | |||
| 192 | 190 | 18dd5663b0 | 2026-10-01 | 5548 | Diff deeply nested values without recursing per nesting level (#5548) | 1990.931 | 4152.500 | 11469.697 | 3204.740 | 3985.593 | 903.248 | 448.981 | 540.974 | 6929.740 | 847.493 | 2040.504 | 665.352 | 1698.903 | 1981.438 | |||
| 193 | 191 | 3926fcaac3 | 2026-10-01 | 5729 | Deduplicate serializer dump code; fix stale includes, docs, and lint (#5729) | 1999.556 | 4178.489 | 11581.000 | 3208.657 | 3876.755 | 891.669 | 452.445 | 538.525 | 6893.078 | 846.721 | 2042.010 | 662.154 | 1689.653 | 1975.503 | |||
| 194 | 192 | cff0a61369 | 2026-10-01 | 5731 | Share DOM SAX position handling; fix stale parser and lexer comments (#5731) | 2017.231 | 4112.604 | 11588.291 | 3157.047 | 3890.343 | 902.329 | 458.713 | 539.539 | 7020.568 | 847.995 | 2073.873 | 654.562 | 1696.823 | 1978.381 | |||
| 195 | 193 | e400780533 | 2026-10-01 | 5745 | Re-amalgamate single_include (#5745) | 1980.338 | 4100.659 | 11418.854 | 3166.896 | 3835.432 | 885.298 | 452.886 | 538.053 | 6888.203 | 824.666 | 2031.410 | 650.846 | 1668.952 | 1949.107 | |||
| 196 | 194 | 6aec1a085f | 2026-10-02 | 5677 | Report BON8 input that ends after a UTF-8 lead byte as truncated (#5677) | 2003.321 | 4099.066 | 11614.364 | 3159.029 | 3849.857 | 899.995 | 459.542 | 539.436 | 6904.474 | 843.221 | 2071.503 | 652.303 | 1685.702 | 1972.556 | |||
| 197 | 195 | 4d46bce4e1 | 2026-10-02 | 5750 | Fix CI on develop (#5750) | 1962.685 | 4025.677 | 11277.718 | 3103.052 | 3785.213 | 894.610 | 448.583 | 533.887 | 6870.062 | 834.856 | 2020.231 | 658.339 | 1674.874 | 1954.242 | |||
| 198 | 196 | 63c10a51fc | 2026-10-02 | 5638 | Review and extend the documentation, and check it in CI (#5638) | 1968.954 | 4036.851 | 11425.135 | 3104.359 | 3797.852 | 902.519 | 451.067 | 537.668 | 6910.375 | 852.438 | 2043.889 | 674.938 | 1701.314 | 1971.711 | |||
| 199 | 197 | 6d0867a85f | 2026-10-02 | 5751 | Make comparisons with scalars noexcept only when the conversion is (#5751) | 2008.360 | 4091.453 | 11376.562 | 3144.575 | 3820.110 | 903.850 | 455.980 | 538.035 | 6851.885 | 841.549 | 2010.128 | 667.182 | 1690.586 | 1970.957 | |||
| 200 | 198 | d11e89471b | 2026-10-04 | 5606 | Assert on missing array indices in const operator[] and document the JSON pointer case (#5606) | 2000.121 | 4075.695 | 11475.520 | 3139.456 | 3837.211 | 900.437 | 453.703 | 538.895 | 6921.432 | 845.064 | 2027.417 | 663.969 | 1679.148 | 1964.082 | |||
| 201 | 199 | df27cc3d4c | 2026-10-04 | 5682 | Add scalar-on-left overloads for legacy discarded comparisons in C++20 (#5682) | 2010.838 | 4092.432 | 11495.625 | 3125.726 | 3873.167 | 911.281 | 456.807 | 538.386 | 6911.630 | 844.451 | 2033.630 | 688.219 | 1691.407 | 1971.697 | |||
| 202 | 200 | 6f2048cd5d | 2026-10-04 | 5685 | Accept lvalues in ordered_map::emplace's value parameter (#5685) | 1999.816 | 4095.006 | 11445.740 | 3136.685 | 3924.146 | 918.692 | 458.336 | 542.423 | 6968.520 | 848.783 | 2037.096 | 667.772 | 1708.274 | 2002.449 | |||
| 203 | 201 | 0d01d6ae90 | 2026-10-04 | 5686 | Classify leaves with operator<=> itself past the nesting bound (#5686) | 1983.320 | 4116.981 | 11466.250 | 3192.969 | 3923.208 | 914.596 | 456.625 | 539.558 | 6975.537 | 849.252 | 2056.035 | 701.221 | 1716.493 | 1983.908 | |||
| 204 | 202 | b730946432 | 2026-10-04 | 5689 | Fix key types convertible to std::string_view breaking lookups (#5689) | 1990.288 | 4060.487 | 11377.709 | 3107.537 | 3803.857 | 892.191 | 451.727 | 538.045 | 6896.480 | 844.989 | 2018.884 | 658.649 | 1676.566 | 2023.638 | |||
| 205 | 203 | 49cd427196 | 2026-10-04 | 5690 | Copy-construct the base class of a deep copy's elements, not assign it (#5690) | 1983.320 | 4033.156 | 11333.843 | 3138.547 | 3882.878 | 894.785 | 454.473 | 538.337 | 6918.619 | 841.205 | 2072.151 | 655.193 | 1693.871 | 1977.288 | |||
| 206 | 204 | 756b28c2b8 | 2026-10-04 | 5696 | Keep a NUL byte ending a // comment as the end of input (#5696) | 1985.931 | 4099.331 | 11579.875 | 3148.560 | 3872.422 | 896.276 | 451.436 | 536.774 | 6901.156 | 845.631 | 2014.820 | 648.054 | 1685.199 | 1971.762 | |||
| 207 | 205 | 1edf0ef041 | 2026-10-04 | 5700 | Fix value(json_pointer, default) aborting under JSON_NOEXCEPTION (#5700) | 1987.233 | 4076.133 | 11442.625 | 3124.099 | 3888.688 | 898.266 | 454.349 | 539.423 | 6950.140 | 852.803 | 2030.279 | 654.586 | 1691.751 | 1978.197 | |||
| 208 | 206 | a212d3b2e4 | 2026-10-04 | 5722 | Preserve the object comparator's state in a deep copy past the nesting bound (#5722) | 2000.138 | 4113.471 | 11391.854 | 3151.006 | 3866.904 | 905.695 | 455.384 | 539.504 | 6929.818 | 842.213 | 2029.619 | 674.438 | 1697.044 | 1983.856 | |||
| 209 | 207 | 1df1e8a845 | 2026-10-04 | 5591 | Make cross-string-type basic_json conversion explicit without implicit conversions (#5591) | 2000.533 | 4107.994 | 11370.989 | 3160.854 | 3881.635 | 897.877 | 455.201 | 540.307 | 6927.167 | 840.130 | 2053.458 | 664.118 | 1697.618 | 1982.876 | |||
| 210 | 208 | 38a2db260c | 2026-10-04 | 5728 | Remove dead metaprogramming and duplicated code in traits and pointers (#5728) | 1971.450 | 4040.828 | 11319.270 | 3109.521 | 3819.505 | 903.606 | 451.137 | 538.725 | 6825.640 | 843.951 | 2016.652 | 663.160 | 1684.596 | 1958.896 | |||
| 211 | 209 | c5650eaa3c | 2026-10-04 | 5704 | Reject malformed UTF-16/UTF-32 units in wide-string input (#5704) | 2006.689 | 4133.594 | 11469.209 | 3180.930 | 3881.633 | 902.924 | 456.572 | 540.557 | 6992.385 | 850.474 | 2025.267 | 652.367 | 1680.025 | 1957.468 | |||
| 212 | 210 | 40021f38fb | 2026-10-04 | 5589 | Add basic_json::as_base_class and document name conflicts with custom base classes (#5589) | 2012.673 | 4147.193 | 11453.250 | 3167.448 | 3892.542 | 910.149 | 457.238 | 541.642 | 6998.084 | 852.247 | 2049.759 | 652.868 | 1688.229 | 1972.508 | |||
| 213 | 211 | 73e9eae3c1 | 2026-10-04 | 5746 | Add an error_handler parameter for UTF-8 to the binary readers and writers (#5746) | 2013.845 | 4130.237 | 11456.041 | 3135.688 | 3818.956 | 892.111 | 449.408 | 538.308 | 6825.213 | 835.872 | 1495.468 | 697.054 | 1679.760 | 1970.285 | |||
| 214 | 212 | d8d47be4a5 | 2026-10-04 | 5754 | Fix CI on develop after merging the ready-to-merge PRs (#5754) | 2013.191 | 4119.948 | 11573.656 | 3173.029 | 3941.703 | 912.201 | 459.208 | 541.264 | 7013.364 | 848.908 | 1514.681 | 699.273 | 1685.391 | 1984.652 | |||
| 215 | 213 | 6b4b825af2 | 2026-10-04 | 5607 | Handle numbers that do not fit narrow number types in the binary readers (#5607) | 2009.190 | 4044.127 | 11362.677 | 3127.688 | 3827.841 | 892.131 | 449.386 | 534.731 | 6915.360 | 829.562 | 1487.640 | 697.206 | 1688.237 | 1952.157 | |||
| 216 | 214 | 8c1f60a45e | 2026-10-04 | 5600 | Store maps with enum keys as objects (opt-in) (#5600) | 2008.560 | 4128.059 | 11523.011 | 3187.763 | 3843.177 | 912.520 | 456.427 | 537.514 | 6859.010 | 839.685 | 1501.515 | 696.508 | 1688.848 | 1968.910 | |||
| 217 | 215 | c5a7a4b46d | 2026-10-04 | 5688 | Add deprecated from_bon8/from_bjdata(ptr, len) overloads (#5688) | 2030.310 | 4108.505 | 11412.907 | 3141.836 | 3899.435 | 904.756 | 455.298 | 541.069 | 6926.151 | 846.240 | 1504.193 | 700.820 | 1693.983 | 1987.713 | |||
| 218 | 216 | 23d3b373e1 | 2026-10-04 | 5755 | Add JSON_DELETE_DEPRECATED_FUNCTIONS to delete the deprecated functions (#5755) | 2018.708 | 4106.015 | 11533.729 | 3134.945 | 3826.409 | 899.623 | 452.833 | 538.544 | 6846.443 | 830.555 | 1509.060 | 705.724 | 1692.819 | 1971.476 | |||
| 219 | 217 | 8a142bc436 | 2026-10-06 | 5764 | Fix CI on develop after #5600, #5607, and #5755 (#5764) | 2017.533 | 4151.854 | 11526.334 | 3195.240 | 3884.953 | 907.457 | 456.697 | 540.114 | 6891.136 | 844.145 | 1517.241 | 699.051 | 1690.344 | 1972.104 | |||
| 220 | 218 | 5379e04ce4 | 2026-10-06 | 5761 | Throw type_error.321 when serializing discarded values to binary formats (#5761) | 1999.156 | 4055.300 | 11427.521 | 3153.581 | 3836.060 | 891.927 | 455.413 | 540.938 | 6883.093 | 853.094 | 1510.099 | 701.888 | 1686.695 | 1982.806 | |||
| 221 | 219 | 0a365865f9 | 2026-10-06 | 5762 | Make basic_json destruction allocation-free and non-recursive (#5762) | 2024.289 | 4081.646 | 10719.428 | 3112.958 | 3900.503 | 924.900 | 462.081 | 540.765 | 6965.453 | 850.019 | 1511.381 | 669.802 | 1620.269 | 1912.078 | |||
| 222 | 220 | 5ecb704f6b | 2026-10-06 | 5592 | Speedup; check for the expected separator before the lexer's token switch (#5592) | 1920.428 | 3801.979 | 10139.250 | 2891.862 | 3833.159 | 823.859 | 451.951 | 540.310 | 6885.672 | 843.570 | 1512.778 | 668.793 | 1608.501 | 1885.206 | |||
| 223 | 221 | 6d4543e743 | 2026-10-06 | 5767 | Fix destroy() for ObjectTypes without reverse iteration (#5767) | 1929.030 | 3843.266 | 10232.541 | 2911.458 | 3926.867 | 830.030 | 450.002 | 542.043 | 6938.890 | 846.589 | 1515.211 | 675.264 | 1622.245 | 1904.006 | |||
| 224 | 222 | 9b179cee1e | 2026-10-06 | 5770 | Handle all value_t enumerators in has_no_children() (#5770) | 1931.275 | 3794.497 | 10155.125 | 2891.927 | 3871.831 | 829.432 | 446.176 | 535.126 | 6909.625 | 833.114 | 1498.945 | 677.571 | 1615.785 | 1884.043 | |||
| 225 | 223 | 69874e4544 | 2026-10-06 | 5760 | Fix NUL bytes in UBJSON/BJData high-precision numbers (#5760) | 1924.896 | 3853.081 | 10247.750 | 2926.515 | 3872.041 | 835.227 | 453.025 | 541.002 | 6919.037 | 842.240 | 1521.169 | 674.487 | 1607.441 | 1880.884 | |||
| 226 | 224 | 162e13b86f | 2026-10-06 | 5758 | Add with_*_t alias templates to create basic_json types with changed template parameters (#5758) | 1938.268 | 3842.126 | 10289.968 | 2914.104 | 3962.414 | 834.967 | 455.536 | 543.630 | 6969.266 | 850.082 | 1530.064 | 678.054 | 1635.303 | 1916.763 | |||
| 227 | 225 | 21a69230bd | 2026-10-06 | 5585 | Create a value before giving it its type (#5585) | 1918.165 | 3829.354 | 10247.656 | 2914.619 | 3874.909 | 832.287 | 451.252 | 543.791 | 6873.995 | 839.514 | 1521.088 | 699.604 | 1615.742 | 1894.449 | |||
| 228 | 226 | ff6f3d7d4a | 2026-10-07 | 5766 | Reject nested indefinite-length CBOR string chunks (#5766) | 1926.074 | 3868.810 | 10256.823 | 2919.802 | 3957.807 | 832.129 | 457.241 | 543.640 | 7024.745 | 847.770 | 1522.612 | 705.623 | 1634.212 | 1918.402 | |||
| 229 | 227 | 1c754cfe31 | 2026-10-07 | 5701 | Copy a pair-shaped array value under JSON_BRACE_INIT_COPY_SEMANTICS (#5701) | 1930.652 | 3828.195 | 10263.927 | 2921.570 | 3901.404 | 832.628 | 455.652 | 541.701 | 6909.037 | 843.563 | 1512.309 | 704.354 | 1623.254 | 1909.917 | |||
| 230 | 228 | 24dd7c63f0 | 2026-10-07 | 5777 | Re-amalgamate after #5740 (#5777) | 1908.632 | 3833.930 | 10278.146 | 2905.443 | 3935.422 | 838.465 | 454.491 | 545.605 | 6905.047 | 839.087 | 1519.816 | 709.223 | 1618.643 | 1886.706 | |||
| 231 | 229 | 30e542e52a | 2026-10-07 | 5776 | Declare the namespace-scope constants in to_chars.hpp inline (#5776) | 1934.934 | 3823.724 | 10229.636 | 2916.698 | 3929.565 | 829.102 | 452.279 | 543.038 | 6951.995 | 837.059 | 1524.049 | 720.722 | 1619.823 | 1903.938 | |||
| 232 | 230 | 367336c83d | 2026-10-07 | 5779 | Fix CI on develop after #5585 (#5779) | 1928.921 | 3780.927 | 10153.395 | 2883.604 | 3877.750 | 824.488 | 451.999 | 543.662 | 6927.395 | 835.495 | 1506.387 | 694.058 | 1622.903 | 1907.732 | |||
| 233 | 231 | 069ace74af | 2026-10-07 | 5707 | Round-trip BJData ND-array annotations exactly (single precision, key order) (#5707) | 1937.387 | 3843.716 | 10184.302 | 2923.323 | 3936.570 | 827.610 | 456.123 | 543.169 | 6907.756 | 847.020 | 1515.229 | 696.202 | 1626.001 | 1901.142 | |||
| 234 | 232 | 43fe8928e1 | 2026-10-07 | 5781 | Stop binary writers overflowing the stack on deep values (#5781) | 1961.046 | 3868.274 | 10300.573 | 2899.792 | 3982.526 | 845.594 | 461.395 | 543.298 | 7059.093 | 846.696 | 1522.728 | 697.717 | 1623.846 | 1921.370 | |||
| 235 | 233 | a5f5d3059b | 2026-10-07 | 5772 | Make std::hash<basic_json> consistent with operator== for numbers (#5772) | 1949.220 | 3857.159 | 10170.427 | 2890.052 | 3981.349 | 840.234 | 459.334 | 541.947 | 6953.786 | 843.495 | 1509.713 | 703.339 | 1627.086 | 1911.653 | |||
| 236 | 234 | a269794db7 | 2026-10-08 | 5782 | Use MSVC intrinsics for full multiplication (#5782) | 1931.869 | 3817.742 | 10159.666 | 2902.820 | 3903.263 | 840.740 | 455.827 | 540.621 | 6884.562 | 843.272 | 1513.776 | 702.028 | 1614.459 | 1901.008 | |||
| 237 | 235 | 69a0c1b82c | 2026-10-09 | 5328 | Avoid allocating temporary basic_json for cbor and msgpack object keys (#5328) | 1909.579 | 3777.560 | 10065.682 | 2852.732 | 3897.659 | 833.289 | 459.856 | 540.631 | 6882.354 | 833.998 | 1498.288 | 314.059 | 1609.343 | 1906.714 | |||
| 238 | 236 | 374dfe4f0f | 2026-10-09 | 5791 | Keep converted object keys alive while writing UBJSON and BJData (#5791) | 1911.274 | 3827.188 | 10159.553 | 2886.568 | 3890.388 | 833.632 | 459.800 | 542.649 | 6954.547 | 838.507 | 1509.324 | 314.357 | 1613.655 | 1892.838 | |||
| 239 | 237 | 44e8597701 | 2026-10-09 | 5792 | Flatten deeply nested values without recursing per nesting level (#5792) | 1940.103 | 3811.779 | 10139.396 | 2865.050 | 3874.896 | 835.001 | 459.686 | 544.065 | 6866.943 | 836.862 | 1496.298 | 314.617 | 1614.837 | 1891.741 | |||
| 240 | 238 | 2913e96433 | 2026-10-09 | 5793 | Unflatten in time and memory linear in the pointer depth (#5793) | 1908.453 | 3785.099 | 10262.147 | 2878.961 | 3920.657 | 845.619 | 459.806 | 543.998 | 6874.813 | 832.659 | 1486.901 | 312.175 | 1589.620 | 1863.981 | |||
| 241 | 239 | 84ee12a67c | 2026-10-09 | 5797 | Make UTF8_ACCEPT/UTF8_REJECT inline variables to avoid TU-local exposure in modules (#5797) | 1922.691 | 3792.849 | 10162.656 | 2871.562 | 3887.719 | 836.308 | 456.522 | 542.577 | 6912.807 | 840.369 | 1497.447 | 313.683 | 1609.988 | 1899.591 | |||
| 242 | 240 | 1649d9eda4 | 2026-10-11 | 5783 | Use and extend the detail helpers to remove duplicated code (#5783) | 1916.258 | 3804.242 | 10297.344 | 2913.118 | 3847.662 | 836.519 | 453.270 | 538.750 | 6953.015 | 832.774 | 1506.068 | 324.715 | 1596.974 | 1875.878 | |||
| 243 | 241 | 2cca04ae6f | 2026-10-11 | 5800 | Report one-character non-numeric array indices like longer ones (#5800) | 1932.327 | 3803.750 | 10135.438 | 2881.041 | 3894.622 | 840.016 | 458.569 | 538.037 | 6842.948 | 829.444 | 1499.722 | 324.811 | 1607.194 | 1875.851 | |||
| 244 | 242 | 74a03dec84 | 2026-10-11 | 5802 | Throw type_error.321 for discarded values in to_bon8 (#5802) | 1924.695 | 3814.854 | 10084.239 | 2873.180 | 3848.498 | 839.406 | 450.575 | 534.181 | 6893.005 | 834.300 | 1503.369 | 324.389 | 1607.323 | 1887.871 | |||
| 245 | 243 | e8b747e4bc | 2026-10-11 | 5808 | Re-amalgamate single_include after #5795 and #5806 (#5808) | 1937.995 | 3840.622 | 10221.990 | 2896.024 | 3885.568 | 834.394 | 458.874 | 539.771 | 6906.182 | 839.793 | 1517.689 | 324.800 | 1609.838 | 1890.885 | |||
| 246 | 244 | 40a62947d3 | 2026-10-12 | 4965 | support JSON Merge Patch (RFC 7396) diff creation (#4965) | 1932.021 | 3822.188 | 10248.416 | 2924.560 | 3980.331 | 842.462 | 459.010 | 540.237 | 6978.526 | 838.941 | 1529.508 | 326.435 | 1636.153 | 1917.472 | |||
| 247 | 245 | f23830b65e | 2026-10-13 | 5809 | Derive the lexer position lazily for seekable input (#5809) | 1814.075 | 3368.028 | 9974.755 | 2807.532 | 3943.229 | 647.639 | 457.018 | 551.206 | 6954.166 | 843.355 | 1522.762 | 315.716 | 1618.953 | 1903.816 | |||
| 248 | 246 | aa9620fb15 | 2026-10-13 | 5810 | Skip the indentation after a newline 8 bytes at a time (#5810) | 1719.629 | 2959.344 | 10139.771 | 2799.555 | 3939.292 | 592.867 | 465.821 | 545.858 | 6968.068 | 849.167 | 1519.774 | 315.385 | 1629.981 | 1907.253 | |||
| 249 | 247 | e839bbd1c0 | 2026-10-13 | 5813 | Export client-facing headers from json.hpp for IWYU / include-cleaner, and check clients in CI (#5813) | 1725.742 | 2949.070 | 10136.603 | 2821.591 | 3919.927 | 589.957 | 463.642 | 544.851 | 6987.427 | 843.151 | 1517.562 | 314.425 | 1619.671 | 1903.613 | |||
| 250 | 248 | 5b4c8f9b00 | 2026-10-14 | 5738 | Speed up the lexer: own float parser, string scan, and \u table (#5738) | 1615.668 | 2934.565 | 8763.651 | 2794.503 | 3928.286 | 559.107 | 374.921 | 516.391 | 6937.140 | 815.776 | 1513.238 | 325.043 | 1625.226 | 1912.905 | |||
| 251 | 249 | 91a7a94cc6 | 2026-10-14 | 5634 | Write doubles with the shortest digits (Żmij), digits in registers (#5634) | 1613.126 | 2929.599 | 8708.599 | 2783.954 | 3874.248 | 548.449 | 363.632 | 468.127 | 2421.176 | 745.466 | 1511.406 | 323.743 | 1614.195 | 1900.392 | |||
| 252 | 250 | a6e9785ab6 | 2026-10-15 | 5831 | Look up the key only once in the callback parser's key() (#5831) | 1589.309 | 2938.557 | 8798.823 | 2767.872 | 3882.154 | 547.301 | 364.257 | 467.833 | 2395.851 | 744.716 | 1506.830 | 316.192 | 1623.771 | 1899.458 | |||
| 253 | 251 | 0c4e7c103c | 2026-10-15 | 5834 | Make flatten() linear for ordered_json (#5834) | 1625.754 | 2936.203 | 8755.088 | 2793.081 | 3879.740 | 557.529 | 366.745 | 468.359 | 2418.388 | 746.210 | 1524.325 | 315.954 | 1614.677 | 1898.544 | |||
| 254 | 252 | 0a4b3a84ee | 2026-10-15 | 5836 | Speed up JSON pointer parsing, formatting, comparison and lookup (#5836) | 1622.914 | 2915.901 | 8819.073 | 2783.990 | 3922.758 | 558.429 | 366.216 | 470.019 | 2427.606 | 747.168 | 1526.881 | 316.972 | 1625.611 | 1912.601 | |||
| 255 | 253 | 6ba53e63dd | 2026-10-15 | 5833 | Speed up array-to-container from_json (#5833) | 1626.155 | 2920.747 | 8777.989 | 2782.870 | 3988.206 | 560.154 | 367.695 | 469.892 | 2427.262 | 749.301 | 1529.474 | 316.399 | 1631.810 | 1915.217 | |||
| 256 | 254 | ca7740fef2 | 2026-10-15 | 5837 | Move elements when converting rvalue containers to JSON (#5837) | 1615.747 | 2928.778 | 8765.792 | 2773.062 | 3926.456 | 561.034 | 367.498 | 469.807 | 2424.344 | 748.423 | 1523.215 | 316.339 | 1624.374 | 1894.455 | |||
| 257 | 255 | 4530d9681c | 2026-10-15 | 5832 | Fix quadratic parent updates for ordered_json with JSON_DIAGNOSTICS (#5832) | 1618.937 | 2911.378 | 8794.094 | 2763.191 | 3886.974 | 555.789 | 366.475 | 469.275 | 2415.231 | 746.755 | 1512.590 | 315.856 | 1618.226 | 1899.284 | |||
| 258 | 256 | 91869983a0 | 2026-10-15 | 5840 | Make the value lifecycle inline-friendly (#5840) | 1595.075 | 2832.274 | 8420.390 | 2690.050 | 3876.841 | 555.209 | 366.118 | 469.783 | 2424.335 | 747.931 | 1485.914 | 314.048 | 1549.787 | 1775.823 | |||
| 259 | 257 | 6a27b9acb2 | 2026-10-15 | 5838 | Construct remaining hot-path exceptions out of line so core functions inline (#5838) | 1589.535 | 2824.360 | 8466.755 | 2699.690 | 3888.990 | 557.917 | 364.879 | 471.601 | 2422.995 | 746.543 | 1498.371 | 314.978 | 1539.656 | 1797.752 | |||
| 260 | 258 | 4f11512641 | 2026-10-15 | 5835 | Speed up container destruction, iterator access and diff() (#5835) | 1515.750 | 2714.756 | 8639.213 | 2574.698 | 3805.860 | 561.827 | 366.793 | 469.680 | 2421.769 | 748.727 | 1383.744 | 317.248 | 1446.525 | 1705.789 | |||
| 261 | 259 | ed86019a21 | 2026-10-15 | 5839 | Move binary reader error construction out of line (#5839) | 1507.907 | 2766.774 | 8597.870 | 2622.289 | 3767.638 | 553.026 | 362.644 | 468.482 | 2408.731 | 744.936 | 1362.080 | 324.833 | 1445.531 | 1703.216 | |||
| 262 | 260 | 6261d1e432 | 2026-10-15 | 5842 | Construct the JSON Patch exceptions out of line (#5842) | 1532.015 | 2756.867 | 8670.677 | 2617.989 | 3869.133 | 558.865 | 365.834 | 469.932 | 2435.279 | 750.295 | 1380.628 | 327.010 | 1453.340 | 1705.232 | |||
| 263 | 261 | ce28c722bc | 2026-10-15 | 5815 | Allow the same type for number_integer_t and number_unsigned_t (#5815) | 1533.045 | 2775.807 | 8543.755 | 2615.412 | 3776.721 | 553.127 | 365.866 | 471.174 | 2433.384 | 745.309 | 1372.372 | 328.405 | 1452.848 | 1716.649 | |||
| 264 | 262 | 91b9ee2602 | 2026-10-15 | 5829 | Update cppcheck to 1.5.2 (Cppcheck 2.20) and fix its new findings (#5829) | 1516.450 | 2748.961 | 8571.521 | 2599.870 | 3807.744 | 557.303 | 367.220 | 472.209 | 2421.389 | 743.889 | 1379.405 | 326.087 | 1451.926 | 1710.506 | |||
| 265 | 263 | dcb96e82fb | 2026-10-15 | 5822 | Escape characters below 0x60 from a table straight into the write buffer (#5822) | 1525.777 | 2734.963 | 8524.771 | 2588.289 | 3790.726 | 557.907 | 360.057 | 463.574 | 2430.626 | 743.382 | 1375.816 | 325.308 | 1439.947 | 1695.307 | |||
| 266 | 264 | b41228c227 | 2026-10-15 | 5843 | Fix AppVeyor failures from the Zmij double writer (#5843) | 1497.922 | 2690.614 | 8406.906 | 2582.482 | 3726.195 | 548.374 | 352.932 | 459.663 | 2398.953 | 737.639 | 1347.507 | 322.827 | 1429.640 | 1682.775 | |||
| 267 | 265 | 4da73dc5ff | 2026-10-15 | 5858 | Fix compiler warnings on develop from the API performance stack (#5858) | 1523.138 | 2731.825 | 8474.073 | 2593.149 | 3782.769 | 553.758 | 359.180 | 462.915 | 2380.246 | 739.049 | 1346.755 | 324.909 | 1441.408 | 1698.043 | |||
| 268 | 266 | 5683f5e024 | 2026-10-15 | 5859 | Define less_general() only without three-way comparison (#5859) | 1504.689 | 2739.172 | 8603.693 | 2605.159 | 3797.057 | 560.213 | 358.865 | 464.429 | 2423.456 | 742.207 | 1374.000 | 326.702 | 1447.488 | 1712.379 | |||
| 269 | 267 | cd6b428ef0 | 2026-10-16 | 5860 | Fix CI failures on develop from the API performance stack (#5860) | 1510.160 | 2732.695 | 8564.510 | 2603.242 | 3810.518 | 556.015 | 362.409 | 466.047 | 2437.364 | 745.153 | 1377.439 | 325.753 | 1444.892 | 1699.255 | |||
| 270 | 268 | cc8334113c | 2026-10-19 | 5866 | Do not use Qt's keyword macros as identifiers (#5866) | 1498.858 | 2732.644 | 8535.328 | 2587.258 | 3787.993 | 548.267 | 362.607 | 464.487 | 2403.147 | 735.633 | 1368.831 | 323.997 | 1442.709 | 1686.963 | |||
| 271 | 269 | 4da932f518 | 2026-10-19 | 5828 | Make parsing from std::istream and FILE* fast (#5828) | 1499.289 | 2723.605 | 8397.787 | 2597.237 | 1956.330 | 553.182 | 363.501 | 458.898 | 2397.342 | 733.054 | 1362.816 | 320.346 | 1429.314 | 1698.294 | |||
| 272 | 270 | 122d718330 | 2026-10-21 | 5620 | Add json_document and json_view: node index, parser, and document (#5620) | 1520.651 | 2751.099 | 8527.135 | 2588.494 | 1994.466 | 560.384 | 362.257 | 461.917 | 2393.611 | 741.198 | 1362.167 | 328.620 | 1441.211 | 1691.238 | 230.700 | 389.375 | 976.277 |
| 273 | 271 | 43e97b629b | 2026-10-21 | 5622 | Add element access, iteration, values, and JSON pointers to json_view (#5622) | 1493.875 | 2687.307 | 8383.354 | 2567.078 | 1986.311 | 547.934 | 353.938 | 462.380 | 2400.331 | 737.098 | 1374.560 | 322.012 | 1445.504 | 1686.421 | 231.353 | 386.679 | 958.441 |
| 274 | 272 | 4c3a3eb5b5 | 2026-10-21 | 5624 | Add dump() and comparisons to json_view (#5624) | 1502.926 | 2714.747 | 8522.161 | 2608.565 | 2001.856 | 552.014 | 359.510 | 462.656 | 2393.110 | 732.091 | 1366.524 | 324.313 | 1442.119 | 1682.564 | 228.836 | 393.082 | 976.976 |
| 275 | 273 | 3ff37ead75 | 2026-10-21 | 5628 | Scan json_view strings with SIMD and index large objects (#5628) | 1514.580 | 2728.619 | 8406.562 | 2609.758 | 2041.176 | 556.017 | 357.330 | 462.573 | 2383.158 | 733.939 | 1368.057 | 324.391 | 1442.711 | 1700.884 | 177.833 | 367.806 | 950.071 |
| 276 | 274 | 823eee3b59 | 2026-10-21 | 5630 | Add editable json_documents: set, push_back, insert, and erase (#5630) | 1498.134 | 2754.810 | 8537.062 | 2588.474 | 1994.441 | 556.670 | 353.931 | 463.646 | 2392.987 | 740.023 | 1357.930 | 324.129 | 1441.622 | 1698.022 | 181.404 | 376.470 | 962.253 |
| 277 | 275 | 4971200b54 | 2026-10-21 | 5632 | Add images of json_documents: save() and load() (#5632) | 1494.231 | 2681.211 | 8425.834 | 2543.276 | 1984.849 | 548.146 | 354.762 | 460.440 | 2414.747 | 734.679 | 1363.841 | 321.349 | 1421.806 | 1670.134 | 177.777 | 368.631 | 949.292 |
| 278 | 276 | 4155e2938f | 2026-10-21 | 5633 | Write json_view's dump() without a call or conversion per token (#5633) | 1500.247 | 2712.357 | 8612.193 | 2597.211 | 2012.860 | 558.559 | 359.889 | 462.371 | 2412.896 | 739.048 | 1372.456 | 324.070 | 1441.546 | 1697.571 | 180.320 | 371.514 | 954.088 |
| 279 | 277 | 08d7fbb0a1 | 2026-10-21 | 5874 | Read FILE* input with std::fgetc under MemorySanitizer (#5874) | 1543.124 | 2758.211 | 8565.730 | 2584.453 | 2046.255 | 558.522 | 358.865 | 464.542 | 2421.435 | 743.715 | 1374.005 | 324.687 | 1462.572 | 1700.819 | 180.714 | 372.601 | 965.361 |
| 280 | 278 | 0cbe95ffa2 | 2026-10-21 | 5824 | Speed up writing CBOR and MessagePack, above all integer arrays (#5824) | 1501.550 | 2706.534 | 8707.120 | 2584.807 | 2039.728 | 551.688 | 360.692 | 466.024 | 2397.182 | 742.777 | 1361.847 | 201.488 | 1429.223 | 1682.436 | 178.641 | 371.038 | 946.389 |
| 281 | 279 | bd5227c2ec | 2026-10-21 | 5805 | Fix silent wrong results for custom number types (#5805) | 1511.036 | 2733.325 | 8786.406 | 2588.906 | 2000.483 | 553.456 | 360.458 | 465.989 | 2398.381 | 743.338 | 1370.524 | 201.168 | 1444.051 | 1701.345 | 179.776 | 372.557 | 954.733 |
| 282 | 280 | e13e976801 | 2026-10-21 | 5851 | Accumulate number digits while scanning them (#5851) | 1501.737 | 2667.570 | 7762.365 | 2523.289 | 1987.518 | 545.368 | 359.336 | 462.056 | 2407.652 | 739.226 | 1368.104 | 200.632 | 1440.390 | 1688.117 | 178.721 | 374.278 | 956.353 |
| 283 | 281 | 5e13f834c1 | 2026-10-21 | 5852 | Copy the text of float tokens only when a SAX handler asks for it (#5852) | 1512.318 | 2655.312 | 7314.354 | 2515.044 | 2019.288 | 547.993 | 362.038 | 463.788 | 2410.262 | 745.839 | 1364.898 | 208.969 | 1450.422 | 1713.902 | 179.198 | 371.996 | 968.699 |
| 284 | 282 | e9970066c5 | 2026-10-21 | 5853 | Scan strings with SSE2, SSSE3, or NEON (#5853) | 1488.705 | 2654.404 | 7339.589 | 2551.050 | 2015.716 | 486.719 | 341.381 | 475.591 | 2434.369 | 756.973 | 1376.754 | 208.797 | 1449.981 | 1706.044 | 182.358 | 379.153 | 968.355 |
| 285 | 283 | fa37b952df | 2026-10-21 | 5854 | Match literals without a stack array and keep parser states in bytes (#5854) | 1471.894 | 2619.164 | 7285.000 | 2485.883 | 1949.380 | 471.534 | 347.785 | 475.287 | 2413.552 | 751.487 | 1374.254 | 207.522 | 1443.177 | 1699.611 | 181.643 | 377.971 | 977.268 |
| 286 | 284 | 52fecc1fab | 2026-10-21 | 5855 | Move object keys into the value when parsing (#5855) | 1392.599 | 2628.688 | 7362.562 | 2485.293 | 1882.663 | 471.968 | 339.711 | 473.663 | 2414.903 | 751.376 | 1319.857 | 200.185 | 1448.057 | 1705.675 | 179.410 | 371.865 | 963.306 |
| 287 | 285 | 6aefd8c662 | 2026-10-21 | 5878 | Copy short printable-ASCII strings without starting the scanner (#5878) | 1399.384 | 2664.401 | 7232.557 | 2535.425 | 1922.431 | 470.185 | 320.230 | 418.440 | 2446.082 | 696.786 | 1317.889 | 201.955 | 1447.217 | 1701.135 | 180.860 | 376.217 | 968.215 |
| 288 | 286 | 7c26e99ac5 | 2026-10-21 | 5879 | Copy ASCII strings in the view's dump with ensure_ascii (#5879) | 1361.839 | 2610.182 | 7187.115 | 2471.708 | 1853.592 | 464.274 | 313.821 | 414.316 | 2388.840 | 687.851 | 1318.253 | 200.399 | 1434.986 | 1697.487 | 178.601 | 368.595 | 947.799 |
| 289 | 287 | 3e031b06a5 | 2026-10-21 | 5876 | Use standard library helpers where available, with C++11 fallbacks (#5876) | 1381.599 | 2592.122 | 7336.719 | 2499.994 | 1848.434 | 467.895 | 315.257 | 415.788 | 2430.769 | 692.250 | 1311.164 | 200.424 | 1444.303 | 1698.311 | 180.149 | 374.484 | 961.091 |
| 290 | 288 | 9bf531436f | 2026-10-21 | 5861 | Speed up flatten(), unflatten(), diff() and patch() (#5861) | 1379.301 | 2613.219 | 7170.433 | 2472.628 | 1853.035 | 467.161 | 315.217 | 412.303 | 2406.597 | 683.062 | 1298.512 | 198.681 | 1434.089 | 1682.912 | 177.511 | 368.116 | 947.255 |
| 291 | 289 | 9855db81f3 | 2026-10-22 | 5881 | Silence macro-to-enum for the endianness macros (#5881) | 1369.150 | 2613.547 | 7209.787 | 2476.232 | 1841.347 | 467.780 | 316.011 | 416.187 | 2415.504 | 686.920 | 1304.263 | 200.868 | 1441.243 | 1694.603 | 178.739 | 368.123 | 948.579 |
| 292 | 290 | aa0b371f7c | 2026-10-23 | 5884 | Faster std::istream input: inline get-area path, binary reads, unbuffered streambufs (#5884) | 1375.030 | 2569.362 | 7218.375 | 2484.425 | 1743.476 | 470.240 | 319.245 | 403.750 | 2436.034 | 679.759 | 1319.508 | 201.531 | 1443.354 | 1698.057 | 180.133 | 372.206 | 946.488 |
| 293 | 291 | 86d5c56c54 | 2026-10-23 | 5886 | Speed up flatten(), unflatten(), diff() and patch() further (#5886) | 1386.169 | 2622.331 | 7281.551 | 2495.923 | 1700.794 | 472.317 | 317.282 | 403.416 | 2409.097 | 682.507 | 1320.319 | 200.963 | 1444.908 | 1697.678 | 179.138 | 375.751 | 954.573 |
| 294 | 292 | dec0e9b749 | 2026-10-23 | 5883 | Write strings, scalars and indentation in dump() with fewer calls (#5883) | 1383.235 | 2621.847 | 7151.412 | 2491.644 | 1732.469 | 473.034 | 211.016 | 288.685 | 2276.953 | 416.068 | 1318.490 | 200.574 | 1452.099 | 1701.256 | 180.064 | 372.324 | 960.583 |
| 295 | 293 | 6fa14d8f95 | 2026-10-23 | 5885 | Write binary formats through reserved sink space and number runs (#5885) | 1366.956 | 2600.914 | 7176.994 | 2465.343 | 1691.333 | 462.351 | 210.662 | 285.259 | 2301.553 | 417.589 | 1324.173 | 136.601 | 1429.240 | 1687.947 | 179.319 | 368.881 | 962.518 |
| 296 | 294 | 0b924f5375 | 2026-10-23 | 5887 | Split and print JSON pointers in one pass (#5887) | 1377.526 | 2597.394 | 7242.688 | 2464.445 | 1739.841 | 466.382 | 211.716 | 288.202 | 2319.771 | 418.288 | 1318.592 | 138.744 | 1441.983 | 1706.639 | 179.684 | 372.087 | 976.078 |
| 297 | 295 | e9c4fe3cdf | 2026-10-24 | 5889 | json_view: indented and ensure_ascii dumps through the fast writer (#5889) | 1393.007 | 2627.226 | 7248.287 | 2491.551 | 1769.642 | 469.976 | 211.665 | 291.327 | 2305.655 | 420.168 | 1319.431 | 139.577 | 1457.965 | 1712.927 | 182.274 | 377.741 | 983.284 |
| 298 | 296 | dd7686a269 | 2026-10-24 | 5888 | json_view: faster reading, indexing and C-stream parsing (#5888) | 1382.444 | 2607.026 | 7161.365 | 2472.635 | 1701.277 | 468.438 | 209.963 | 287.564 | 2276.329 | 415.511 | 1311.194 | 137.875 | 1439.700 | 1696.646 | 177.624 | 367.131 | 977.802 |
| 299 | 297 | 9c50bdd140 | 2026-10-24 | 5882 | Make the DOM parser cheaper per container and per member (#5882) | 1392.673 | 2461.082 | 6068.625 | 2334.706 | 1696.950 | 475.550 | 209.313 | 291.776 | 2300.287 | 416.349 | 1317.581 | 138.194 | 1441.209 | 1707.720 | 178.751 | 367.339 | 978.031 |
| 300 | 298 | 01139dc192 | 2026-10-24 | 5905 | Silence an Infer false positive in json_view materialize (#5905) | 1381.470 | 2463.013 | 6078.010 | 2335.216 | 1709.088 | 475.718 | 211.023 | 291.212 | 2275.302 | 418.098 | 1320.441 | 137.572 | 1443.434 | 1696.436 | 175.969 | 365.658 | 975.272 |
| 301 | 299 | fe5e401870 | 2026-10-25 | 5901 | Consolidate duplicated detail helpers and bodies (#5891) (#5901) | 1395.881 | 2462.765 | 6066.698 | 2327.708 | 1706.745 | 474.184 | 212.683 | 289.321 | 2283.842 | 417.657 | 1314.153 | 138.084 | 1442.796 | 1696.588 | 177.144 | 364.092 | 961.847 |
| 302 | 300 | 3eae5680d6 | 2026-10-25 | 5902 | from_json: number-first dispatch for arithmetic types, loop for std::array (#5902) | 1397.343 | 2477.060 | 6080.864 | 2340.781 | 1711.774 | 481.523 | 213.618 | 289.360 | 2289.503 | 417.517 | 1313.541 | 138.271 | 1440.822 | 1695.785 | 178.731 | 367.293 | 983.555 |
| 303 | 301 | 2a56afc714 | 2026-10-25 | 5916 | Fix VS 2015 build of the DOM parser (#5882) (#5916) | 1373.929 | 2476.139 | 6056.797 | 2341.890 | 1749.167 | 482.883 | 215.107 | 290.053 | 2292.495 | 417.441 | 1320.640 | 137.868 | 1445.227 | 1702.064 | 177.912 | 367.669 | 984.794 |
| 304 | 302 | d6431a9104 | 2026-10-26 | 5918 | Throw out_of_range.411 for JSON Patch add into a null parent (#5917) (#5918) | 1371.635 | 2445.905 | 6017.636 | 2314.178 | 1696.447 | 478.134 | 210.996 | 287.397 | 2278.718 | 414.186 | 1291.197 | 137.374 | 1436.212 | 1682.197 | 175.790 | 361.130 | 962.070 |
| 305 | 303 | 81d66291c5 | 2026-10-26 | 5358 | Create objects for pointer tokens that cannot be array indices (#5358) | 1382.909 | 2465.649 | 6052.114 | 2332.556 | 1711.721 | 479.927 | 213.359 | 289.913 | 2289.412 | 417.201 | 1311.695 | 137.572 | 1437.168 | 1696.302 | 177.495 | 367.526 | 963.924 |
| 306 | 304 | d5da84249f | 2026-10-26 | 5927 | Skip CBOR tags in front of map keys, validate indefinite text chunks, fix CBOR docs (#5927) | 1374.553 | 2476.464 | 6076.834 | 2346.075 | 1744.224 | 483.375 | 211.423 | 291.148 | 2287.800 | 420.247 | 1320.015 | 137.369 | 1449.068 | 1704.785 | 177.459 | 365.004 | 963.908 |
| 307 | 305 | 0c3570d44a | 2026-10-26 | 5929 | Validate the UBJSON/BJData container type marker for count 0; fix UBJSON docs (#5929) | 1381.462 | 2462.578 | 6055.183 | 2329.970 | 1713.086 | 484.962 | 210.683 | 290.024 | 2260.371 | 416.895 | 1319.093 | 137.782 | 1453.495 | 1706.801 | 177.031 | 361.025 | 962.952 |
| 308 | 306 | dc768a7d5d | 2026-10-26 | 5930 | Fix BSON binary subtype 0x02 and check the declared document size earlier (#5930) | 1386.856 | 2463.400 | 6054.255 | 2337.105 | 1746.441 | 485.425 | 214.508 | 290.954 | 2314.702 | 418.769 | 1325.164 | 139.255 | 1452.125 | 1718.313 | 179.005 | 367.327 | 977.054 |
| 309 | 307 | 60107eda3f | 2026-10-26 | 5931 | Read BJData ND-arrays of float16, restrict ND-array char to 0..127, correct BJData docs (#5931) | 1389.051 | 2464.457 | 6049.084 | 2336.727 | 1710.473 | 483.159 | 213.007 | 288.990 | 2285.073 | 417.663 | 1317.537 | 137.893 | 1443.301 | 1697.126 | 178.706 | 364.051 | 962.202 |
| 310 | 308 | 731f1b5bfb | 2026-10-26 | 5919 | json_view: view_mode enum instead of bool Editable, node_kind for node::kind (#5919) | 1381.664 | 2428.529 | 5978.713 | 2333.485 | 1746.571 | 479.163 | 211.036 | 288.957 | 2281.592 | 416.990 | 1308.904 | 137.486 | 1447.665 | 1691.427 | 175.453 | 363.704 | 963.371 |
| 311 | 309 | 4cdfa6d0f4 | 2026-10-26 | 5920 | json_view: no save() and load() on big-endian targets (#5920) | 1390.901 | 2477.841 | 6102.474 | 2337.925 | 1777.003 | 485.382 | 214.373 | 290.946 | 2303.147 | 421.178 | 1321.976 | 139.942 | 1446.726 | 1704.816 | 179.928 | 367.825 | 976.532 |
| 312 | 310 | 5a2819c940 | 2026-10-26 | 5921 | json_view: one SIMD macro set with the library (#5921) | 1393.409 | 2479.841 | 6073.011 | 2350.336 | 1785.087 | 485.658 | 214.651 | 292.044 | 2304.448 | 418.026 | 1326.212 | 138.942 | 1468.981 | 1719.505 | 179.174 | 368.704 | 982.764 |
| 313 | 311 | e5fe4ebdd2 | 2026-10-26 | 5922 | json_view: from_json() of the macros reads views directly (#5922) | 1384.612 | 2467.078 | 6056.328 | 2337.309 | 1742.751 | 482.554 | 213.389 | 289.543 | 2299.118 | 417.521 | 1309.673 | 138.237 | 1448.628 | 1704.550 | 177.925 | 365.163 | 984.351 |
| 314 | 312 | 9e67bfa115 | 2026-10-26 | 5923 | json_view: the library's std conversions read views directly (#5923) | 1395.103 | 2482.517 | 6066.604 | 2350.538 | 1751.603 | 482.504 | 213.399 | 290.185 | 2306.188 | 420.406 | 1317.415 | 138.730 | 1444.367 | 1708.720 | 178.016 | 369.111 | 975.875 |
| 315 | 313 | 21ec9bd801 | 2026-10-27 | 5915 | json_view: fewer allocations when parsing small documents (#5915) | 1388.282 | 2469.118 | 6066.495 | 2340.391 | 1744.901 | 478.745 | 214.934 | 292.970 | 2309.264 | 422.842 | 1323.237 | 138.541 | 1454.151 | 1707.314 | 178.058 | 366.514 | 958.110 |
| 316 | 314 | 2bb2feeef4 | 2026-10-27 | 5942 | Fix the red CI on develop (json_view pointer tokens, bson, from_json tests, Infer, IWYU) (#5942) | 1391.981 | 2468.266 | 6068.495 | 2335.707 | 1751.527 | 482.908 | 214.285 | 291.291 | 2300.453 | 417.876 | 1328.089 | 138.010 | 1454.934 | 1701.845 | 178.250 | 367.182 | 964.917 |
| 317 | 315 | 78a0687147 | 2026-10-27 | 5940 | Strong exception guarantee for operator[](json_pointer) (#5940) | 1379.414 | 2467.492 | 6109.136 | 2335.309 | 1723.090 | 480.260 | 216.197 | 292.075 | 2313.798 | 415.444 | 1314.530 | 138.314 | 1449.629 | 1698.792 | 177.628 | 364.844 | 965.314 |
| 318 | 316 | candidate | develop + open pull requests | 1404.881 | 2459.645 | 5976.210 | 2313.583 | 1739.023 | 477.276 | 214.858 | 289.366 | 2301.972 | 415.963 | 1307.406 | 137.828 | 1440.710 | 1714.002 | 176.462 | 364.414 | 971.829 |