Files
json/docs/mkdocs/scripts/figures/data/perf_timeline.csv
T
Niels Lohmann ea848cd2e8 docs: add the blog post "How 3.13.0 got faster"
A post for the documentation (Home > Blog) on how 3.13.0 became faster:
eight themes with the pull requests behind them, the ideas taken from other
libraries, what did not work, how the fast paths are tested, and the
compile-time cost. Every number comes from a run on 2026-10-27 (3.12.0 against
develop plus the open non-draft PRs, Apple M1 Max) or from the linked PR.

- docs/mkdocs/docs/home/blog/how_3_13_0_got_faster.md: the post.
- docs/mkdocs/scripts/figures/perf_blog.py: draws its 12 figures (overview,
  eight timeline panels, the SWAR test, the cliffs, json_view throughput) as
  inline SVGs in the nj-charts style; data/perf_timeline.csv holds the
  timeline.
- tests/benchmarks/history: history.cpp and history.py time one fixed program
  against the header of every commit that changed it, interleaved, and write
  one CSV row per commit with its PR. The timeline of the post comes from it.

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2026-10-30 15:29:45 +01:00

71 KiB

1indexcommitdateprsubjectparse_twitterparse_citmparse_canadaparse_citm_compactparse_twitter_ifstreamaccept_twitterdump_twitterdump_citmdump_canadadump4_citmfrom_cbor_twitterto_cbor_twittercopy_destroy_citmequal_citmview_parse_twitterview_parse_citmview_parse_canada
2055f93686c02025-04-11Merge branch 'release/3.12.0'3571.4878219.60917049.0734366.7923846.0062394.2131441.2131375.4467510.9891917.8093463.281695.5241643.3271956.891
311705bfe9142025-04-114727:bookmark: set version to 3.12.0 (#4727)3589.3318245.42217079.2504422.7113894.7872397.5971440.5461377.7457514.6981922.3713498.997695.5591655.2401967.301
424cca3b9cb22025-04-134738Fix warning and add emscripten CI step (#4738)3559.6578195.10517066.2914373.0113794.2692388.9001419.1821355.7247420.7031912.0383468.667664.2141631.6101939.475
5396c1b52f1c2025-04-154742Fix conversion to std::optional (#4742)3573.8388157.27616993.2084383.6563858.9272395.0921438.1691372.2087497.7761925.4813482.185667.8951633.6191946.687
6488c92e605c2025-04-164744Fix compilation failure and warnings with NVHPC (#4744)3563.1498039.91116922.7394381.9273768.5602385.0861407.5641345.5787370.0631897.4743462.010662.9551623.2861925.804
75c67d5382742025-04-174749Fix C4702 warning and extend MSVC CI job (#4749)3585.4228251.05717050.4484400.5423896.5862390.6551440.3911371.7227453.4741921.2773478.523667.9111636.2061939.531
86756ca22ec52025-04-234736Provide fallback for missing `char8_t` support (#4736)3559.1468139.70317085.1144387.6583856.7452392.8491424.9971370.5997477.5371907.6613484.427665.5411634.1561957.401
976b9199382b2025-04-274763Add missing header (#4763)3541.3238077.76117011.6364359.1833842.3802396.6861421.1161363.7377431.3751902.9093474.250664.4421625.6441934.732
1083b02afb9d92025-04-284760Specialize char_traits for std::byte to fix from_msgpack (fixes #4756) (#4760)3583.0708198.14617134.6984381.7433899.8722409.1851440.2331380.8107504.8381921.7813500.125666.0781657.2071966.036
119eef76c200e2025-04-284764Make library work with C++20 modules (#4764)3528.5298080.45816936.6564330.5703764.2872363.8481407.8511358.0797356.2391897.4233455.287665.1941632.2551937.675
1210dff2b4756c2025-04-294765fix: BJData size calculation overflow (#4765)3553.7068141.37517047.5114360.1443797.0702389.7561417.7371364.7187454.3131921.9623479.878666.4561644.7601944.696
13119110918cf82025-05-044748Fix typos (#4748)3563.6828176.42717239.3544398.0553891.6692399.7821441.6691387.1337516.0731925.3233483.271669.3481647.7601957.747
141246e7cd3dc22025-05-164775Replace deprecated std::is_trivial in C++26 (#4775)3565.2428195.39617135.6464373.4793851.6042392.2581418.4251370.9587464.8541909.8443485.046665.6061643.1551952.329
1513828c8914272025-05-164786Extend type_name() to invalid type (#4786)3549.5738103.76117066.1984359.9113804.8492389.1211428.5841366.4057424.8381914.4343452.497667.4521632.7501928.324
16144b17f90f652025-05-224609Add `ignore_trailing_commas` option (#4609)3544.6628132.05216997.3754344.5923825.7652382.7551408.4351367.4687460.4481924.5223434.062733.0891631.3561891.572
1715b19f0584652025-06-014802Encode infinity and NaN as float for MsgPack and CBOR (#4802)3550.0208126.43817350.8854327.5963825.4192389.3561409.4221376.6497363.8021921.2263441.081683.1901624.1441886.388
1816cf16c5ab9f2025-06-024805Use binary_t::value_type (#4805)3551.7358143.52117153.2914309.4773829.2292387.6401428.5501385.5857415.2711932.3473425.838657.7351631.5861888.954
1917d70e46bc652025-06-254830:bug: add missing header to input_adapters.hpp (#4830)3546.4488157.46917062.3644335.3003805.2212382.7961422.8631382.5817411.4011928.6763433.190691.8421632.9721892.453
201830d27df61c2025-07-314871Fix CI (#4871)3570.0158150.85917070.6254330.0783806.5052400.3291434.9471381.0657425.7181931.5563429.632656.5451633.5151892.916
2119efcf9efb4f2025-08-024873Fixes #4854 Explicitly handle nullptr in sax_parse (#4873)3520.3818050.71916883.0424331.8203861.9062368.0691408.4351375.9547363.6511898.4663432.992653.9881634.1411894.948
22204106af8d922025-08-204896:rotating_light: suppress cppcoreguidelines-c-copy-assignment-signature,misc-unconventional-assign-operator (#4896)3540.5998175.26517010.4384345.1823866.8332393.9351435.1001389.4967453.7241945.7913433.169657.4461638.4341900.360
2321a63795caf12025-10-224791:rotating_light: avoid deprecation warning (#4791)3550.0578174.64616983.1774363.5213888.3362393.3051423.4341376.3347469.4071936.0133447.279666.7061645.3541903.707
24221cc56b2dcd2025-10-234957Address CWG issue 2521 (#4957)3557.3968119.65117072.7304351.8813834.7392386.0971442.1001393.2457474.4631932.3153446.883660.1871638.9831896.000
252354be9b04f02025-10-234960:page_facing_up: update REUSE (#4960)3554.6258098.28717115.2194324.5783809.9502390.7911424.4881376.7157422.8281913.2083424.693659.0301623.4051892.756
262429913ca7602025-10-254963Add char8_t* overload for _json and _json_pointer (#4963)3544.8998169.20317007.8444353.5943797.6302392.1081423.0321375.2167349.7871909.8973428.771655.6251635.2731891.018
2725515d994acb2026-01-015044:page_facing_up: adjust year (#5044)3524.6108059.52116949.4164313.5083773.7502364.7421410.4271372.9887382.4381915.5023403.159643.9681618.9721884.213
28268f757001412026-01-114958support types convertible to string_view as JSON keys (#4958)3546.7578142.59917103.3864327.7393825.9902388.5401420.5151379.3097413.0621924.5403433.677658.2661628.0791890.759
2927457bc283ff2026-01-125039fix(cbor): reject overflowing negative integers (#5039)3508.8838077.29116930.0114305.9823785.6982378.6931425.5261366.1117407.0421929.1423478.909657.7221636.3041944.681
3028e3014f162a2026-01-135052Fix conversion to std::optional (#5052)3547.9958140.05217010.0314321.9143797.8072385.8561430.4141386.2027407.2601930.4033462.213657.8291629.5791932.066
31295ed07097fa2026-01-135050Fix -Wtautological-constant-out-of-range-compare in serializer (#5050)3544.1368180.20817033.2094339.5913799.7792391.9401427.8701387.8717368.7651922.3213454.938659.3671630.7071959.722
323025f48639c72026-01-235016Reference tuple from json (#5016)3563.1808209.03717030.9694388.6753895.0862392.0881430.6661393.8537528.5671934.3473481.351677.2341645.4181957.591
3331f8eee1bb792026-02-075071Annotate unreachable comment-scanner switch paths to satisfy C26819 (#5071)3508.0008128.75016958.9594315.2353797.2372371.9631425.1461374.8677453.3811930.2113456.508658.5681629.1881909.736
3432fd17b0889e2026-05-085139Remove nullptr safety check from sax_parse functions (#5139)3544.1018033.02116963.2924334.1023800.7362382.5831419.0501361.7457357.0731907.1533429.315657.0411618.8151937.829
353362f3b41b302026-05-085090fix: treat single-element brace-init as copy/move instead of wrapping in array (#5074) (#5090)3550.3238168.71317060.0314349.4173794.1102380.5831416.8221361.1827369.6511897.7173466.731659.2971631.4631941.905
36344fad4468972026-05-105162docs: add IDs to @requirement tags to fix Doxygen autolinking (#5162)3545.4408031.89117069.4484324.6983802.8622383.5131422.7681384.6027325.7761917.6063469.787659.0111631.2961940.370
3735a0a4e7cc0b2026-05-135152Add front methods to json_pointers (implements #4889) (#5152)3582.8988215.01017034.4484345.5153891.5132396.5721432.7331395.7147554.1191934.0083484.859659.2981642.3141957.356
383693e49decbd2026-05-145167Fix incomplete-type error in set_parents with ordered_json (#5167)3555.2248147.77117017.0734320.8463831.3182386.7501435.8401385.5787436.8641927.4833466.508658.4091632.7241939.528
39377192763f152026-05-145163Fix compile error when using nlohmann ordered_map with WITH_DEFAULT macros (#5163)3520.6758039.14516892.2914303.4483769.1982363.3371410.0301364.6797380.7971913.2853437.278660.1301630.7381943.235
40385a05627b1f2026-05-145169:rotating_light: fix warning (#5169)3600.5558160.85416979.0314324.0703887.8232389.1571430.9831387.1067509.9841912.6013473.713663.2791652.9821958.774
4139bb5404bb862026-05-155164Fix GCC C++20 modules compilation #5103 (#5164)3543.8238120.26617015.3954349.3003794.8802364.1781414.4081374.5487484.2181920.4953444.266699.3261626.2411954.688
4240b1bb9fce0c2026-05-153929Fix for printing long doubles bug in dump_float (#3929)3549.3788089.89116934.9274313.3103824.8022386.9581412.1641385.4257417.8691930.5133461.151651.5571618.7351944.450
4341cba5dc0ed82026-05-164563New macros for the named JSON convertor generation (#4563)3544.6578168.18216990.8864327.6883806.9632370.9751421.6291390.2067454.1511919.2843452.456677.4131623.6221941.921
444247202c804a2026-05-185171Add missing overload to ordered_map::find (#5171)3527.5428168.31217141.9894409.4563887.3782397.0071428.7651387.0337495.6041935.7103485.088660.1551648.9771951.430
454358cfecf7f72026-05-185151Serialize enum (#5151)3521.3028100.10416805.4894288.4633763.9712381.4941408.7131383.0597328.2611915.2023440.372648.7261617.6611922.608
4644584e6b1cfb2026-05-225187Fix: update() parent pointers not updated after recursive merge with JSON_DIAGNOSTICS (#5187)3550.6398083.46317055.1984326.8333804.2572381.5191432.0391381.9867377.8441915.1593460.750656.8731631.5271940.953
474502dfbea39d2026-06-175209added explicit instantiations of 'has_from_json' and 'has_to_json' for std_fs::path (#5209)3552.2098215.47417167.7604338.4043845.1442398.0261425.0121387.6297458.6141931.3883475.343658.1831644.3291958.324
4846fc1df0b7db2026-06-235172:recycle: remove unnecessary if (#5172)3562.0888175.53117044.0424336.5833863.6512404.6951425.8721389.4347523.8551914.1283481.000653.2591639.5151957.649
4947c5b2b26fdc2026-06-295217:memo: fix docs (#5217)3526.8258052.30717000.0114343.9633793.4122388.1941416.7061374.1777361.6461904.0083463.919658.3221627.7651921.887
5048b7566c62932026-06-305161Harden JSON_HAS_RANGES detection for incomplete C++20 ranges implementations (#5161)3538.9958071.78717120.7514318.7973772.4452384.0081421.4401385.2397419.2921898.9293431.466647.9481602.2581928.644
5149adf78d3a762026-06-305215Minor: unique_ptr template resolution workaround for MSVC (#5215)3550.3808138.02617036.8024366.0623842.4302389.5361426.6581385.6097428.7871915.2333467.188658.3321636.1581942.556
5250272411c5e62026-06-305218Overwork project infrastructure (#5218)3547.4878087.25016962.1984341.9693793.8312387.5091420.8881381.0727450.0781930.0033466.193659.6761631.3291943.043
5351730b57775d2026-07-015222:bug: avoid assertion in patch (#5222)3539.9128169.77117027.2294345.1513790.7532376.5521421.2631386.7177399.9851923.2373455.722653.6091630.9141934.028
5452ca49ab61232026-07-025223Extend value to arrays when using JSON pointers (#5223)3550.3418113.78716951.3134346.8053793.0972391.2241409.6951380.0757374.0731926.4013458.438659.3821629.3871941.306
55538d7e0046f42026-07-025224Add std::format and fmt support (#5224)3546.9358170.40616968.9274346.9063814.9562387.6121424.8611386.5427350.7651900.3763461.177662.4761633.8581930.434
565431dd15b2582026-07-025221Fix ambiguous static_cast (#5221)3551.9458213.00017131.2714373.6203845.7632393.0741438.6331385.7697471.1461927.8043486.568662.0151631.8101958.901
5755eed15870002026-07-055234Reconstruct lexer diagnostics lazily for seekable input (#120) (#5234)3145.9095311.09415381.8434292.9613851.2601966.8331422.5981365.4617443.2761920.4673467.060702.8321637.5871905.758
585683c87cb9e02026-07-055233Read binary strings/blobs in bulk chunks with a memcpy fast path (#5233)3141.8675259.48515454.9594326.6643797.1981987.6231406.4921372.7657424.7291899.7262363.895667.5021630.0971888.392
5957acf076a6772026-07-065238Fix ADL leak of nlohmann::detail through basic_json's default base class (#5238)3152.1535277.07315291.4074338.8283839.3311995.5241429.9601365.9177456.7761907.9282398.016670.2571627.5901897.997
6058c05c5e229b2026-07-075241Add missing copyright notices to SBOM (#5241)3147.4855268.86515319.5844321.8233796.9721981.1671432.6891371.2647465.4161918.0832388.154667.1191630.7451891.583
6159366f3d26e52026-07-085235Replace snprintf with a branch-free writer for \uXXXX escapes (#5235)3127.6415272.30215425.2394340.4593850.3571997.9571459.6031356.4617509.7031899.9162366.966668.3831624.9811889.145
6260f8e99e856c2026-07-095248Fix nvcc CUDA 12.0/12.1 C++20 ranges parse error (#3907) (#5248)3132.0995226.37515164.5104301.9013769.6511967.6471456.7591365.8107530.7241908.6352381.610683.8151616.6991879.795
6361855f511db42026-07-095250Fix stale Clang -Weverything suppression comments; drop -Wno-missing-noreturn (#5250)3126.7925208.33815352.5204293.5963800.5441969.4971458.6011329.8517372.8491876.4042368.894662.1731603.8811874.673
6462d0a43141ea2026-07-095253Fix #3868: Remove operator!= to enable P2468R2 rewritten candidate synthesis (#5253)3165.1825270.45815479.0314302.7293845.6461989.2311474.1351343.3127443.2821887.9092392.523670.3951634.8711894.474
6563b630f5e9c72026-07-105260Fix container input_adapter SFINAE for lvalue-only ADL begin/end (#5260)3128.1175263.80715375.6774330.5443819.9531982.1961454.0881339.0627364.6831877.6992361.482666.4861616.5141920.626
6664c60217e8012026-07-115205fix: support constructing json from C++20 range views (#4916) (#5205)3117.5395206.55215308.1664320.5133798.7131983.4581447.0721350.9507357.2131875.6322340.731662.9051633.3571934.261
6765fe2bcc080f2026-07-115266Custom BinaryType direct assignment (#5266)3174.5285284.56215383.6454328.1203895.0861996.9131478.4271355.5697512.1151899.2362398.490672.1181642.9101967.660
6866ca76c376502026-07-115265Add iterator+sentinel tests and docs for binary deserializers (#5265)3134.2655218.02115352.5214306.2843791.6121967.8241451.9531358.6857508.8281891.6972377.848665.4741631.4951934.907
6967c197feff812026-07-125268Extend memcpy fast path to sized sentinels (e.g. std::counted_iterator) (#5268)3116.2715207.14615415.7714272.4433815.8511984.9661451.1031341.0937328.0371865.3852383.169664.4941617.9671915.428
70681c5a953de52026-07-195276reject unpaired UTF-16 surrogates in wide-string input (#5276)3155.3605299.63115419.8124302.0893853.1041987.2591468.6531349.6657549.4321911.3652457.555680.3111653.2821955.673
71693565f402292026-07-205284reject negative UBJSON/BJData string length (#5284)3170.4565301.69815404.4164351.2263893.5941997.0341470.9071358.2457491.4801909.6012401.384671.2601639.8651963.899
72709a3ebb94562026-07-235287validate BSON document size against the bytes read (#5287)3157.6465264.06215305.2714338.6723839.6431987.1961461.3561351.6307444.7911890.6262398.503665.2621655.7981930.268
73718ec98e2c9e2026-07-275313adding cleanups to bson writer (#5313)3150.4485268.94815445.9274308.6123805.0051989.6431466.3481349.5917326.4531895.8422393.278708.1641644.0251946.652
74722e236870922026-07-285314to_bson() silently emits corrupt documents when a length exceeds INT32_MAX (#5314)3146.5345254.54715445.2504304.0083798.6201986.2601459.7351345.5347517.6511903.9962395.155674.3441644.5651952.682
7573868506dcc02026-07-305335Fix CBOR half-float assertion bounds (#5335)3167.0865267.06815397.9794351.0113883.1352003.3451468.9391360.4837455.2301909.0552406.305679.9421643.6461945.639
7674dd24e2dffd2026-07-305332check all BSON reads and add an EOF check for booleans (#5332)3138.3155284.83315399.1664310.5133847.6301980.6821464.1041344.1087445.1461901.5122400.532670.8501635.1961900.946
7775fd72ecfc8c2026-07-315301validate ndarray element types in write_bjdata_ndarray (#5301)3164.6625262.14115399.0104287.2713849.3181988.1861460.6881353.7677458.3801893.6692398.485668.4661644.0181921.615
7876bc489511282026-07-315323Fix UBJSON high-precision floating-point overflow handling (#5323)3155.6285289.86415474.3754324.2533888.9662015.0681477.8461354.6227480.7301905.5662415.428668.9971641.7761911.819
7977d94cbd99dc2026-07-315274reject CBOR array/map length equal to the indefinite-length marker (#5274)3144.0415272.19315466.9804338.7353848.8491999.2311459.1291358.1197507.3071901.8072394.972667.0161635.9601899.878
80782222d386c92026-07-315339fix: check CBOR tagged subtype reads (#5339)3095.7685137.79215064.1464258.9773755.2291965.9001454.8901338.0667399.0681883.6242358.193660.1901618.1721939.713
8179585929bff92026-08-035289Fix Clang deprecation warning for json_pointer operator== with ordered_json (#5289)3142.3415259.36015258.2714275.4793807.6721969.7041453.6881337.6337451.0371879.4472364.966661.5601635.6171945.709
82805f121d8c502026-08-035336avoid sign extension in char_traits<signed char>::to_int_type (#5336)3145.0005264.88015441.5214269.6323796.7811983.4971440.8101325.2327427.7501880.0472361.899663.7721621.5951912.378
838168f0722a192026-08-035342remove discarded array from parent object in end_array (#5342)3161.2735269.90715312.4694335.4333840.5101995.9651465.7451355.9347474.9011895.4832401.197657.3971634.7911901.902
8482dca9d49a332026-08-055348reject out-of-range code points in UTF-32 wide-string input (#5348)3119.7535210.97915209.2604273.9843799.0341995.2971459.4561342.9827431.6461891.4782370.364653.6181633.5851882.753
85839a091d2b822026-08-055362Do not write BJData ndarrays whose size overflows std::size_t (#5362)3137.3815257.31215286.0844308.5003805.3251995.1401468.1381354.7297510.0881893.0362384.577659.3941628.2601890.245
8684d5647e6a3b2026-08-055355Resolve the TODO(niels) in get_ubjson_string (#5355)3121.2785249.92715246.0114292.7373800.4901967.0871443.7621333.2267368.9531862.1312347.852644.6471623.9091889.958
8785bacdabd1762026-08-055361Fix start_pos() for strings containing escape sequences (#5361)3114.6535251.61915253.9074331.8183786.1561960.6761442.3881330.2477354.7241863.3062351.588650.7811623.5431886.671
88861c136a66c42026-08-065363Move the CBOR doc block to the function it describes (#5363)3124.2745209.61515411.8974293.3203812.1561982.8541457.6531345.6807422.3431884.8482387.050656.0761627.6201878.737
89876285225fd02026-08-125211Fix integer comparison bug (#5211)3159.5575291.32315395.3954329.8363867.2001989.4761456.0521359.7957526.8601879.6422396.137659.0771638.1761900.416
9088b5378e8deb2026-08-195331Fix CBOR tag handlers not recognizing tags 0-5 and 21-23 (#5331)3172.4765239.81215479.9174295.5393871.2892003.4391473.4471343.7427516.8751888.4122400.572645.5881641.6211886.531
91892f025f401e2026-08-255380Throw other_error.502 when UBJSON use_type is set without use_size (#5380)3155.8735190.31215144.4064286.3883793.8051968.1991442.2401340.9297373.6101860.5432370.570648.9061631.2071893.750
929035705d79d82026-08-285414Fix update(merge_objects=true) throwing on primitive-to-object merge (#5414)3169.0295252.57815387.2924340.6903893.6461979.6161472.2861361.5437491.3021903.9092401.404659.3961641.6971912.409
9391137a40b9aa2026-09-055459Compare integers with floats exactly instead of widening the integer (#5459)3134.2295259.34915404.5414300.1463846.6461992.1551467.9191351.7747467.1461887.2552391.467660.3471631.7351891.751
94923c875683a52026-09-055461Make diff() linear when an array shrinks (#5461)3141.0685259.00015271.1664319.6593797.0881983.4501455.3541354.6767444.8601891.6872389.333657.1631632.9981887.016
959309b6b6b5ba2026-09-055455Fix to_bjdata() emitting unparsable output when _ArraySize_ is not an array (#5455)3161.5425253.04715311.7184291.3883834.2641992.7441472.6851357.6807409.4791889.2872389.501698.6801628.2371888.705
9694faa35cc6472026-09-095484Skip integer conversion in accept()/SAX validation when the value is unused (#5484)3103.6545222.45315458.5734215.7653804.3201935.1611468.6601353.4997452.0521883.1912383.524654.4411631.7001885.664
97956d86cc0f6b2026-09-095490Speed up whitespace skipping in the lexer (#5490)3181.3285276.31815307.3124262.7713877.4011977.0621465.1961356.1197594.1771906.8142388.615684.9261636.9501893.526
9896c05347dd542026-09-095475Undefine the four JSON_HEDLEY_* macros that leak after including json.hpp (#5475)3147.9325156.62515347.9904217.5053871.8121982.8071458.7871354.9347639.3281879.8232370.342674.6251637.2571903.903
9997d6660cf7182026-09-095485Route hand-rolled diagnostic pragmas through Hedley (#5485)3116.1515215.53115257.4994189.9793835.0231974.1111459.3631342.9967553.8021887.6982379.999669.9341635.3501877.492
10098c9477ccf912026-09-095496Throw when JSON Patch remove's target path resolves through a primitive or null parent (#5496)3138.8415258.40115315.4174201.0083874.6821967.6301446.3931335.0607542.7081870.1112390.141668.4841634.1381886.981
101998c38e270b52026-09-095497Reject JSON Patch move when from is a proper prefix of path (#5497)3183.8205280.00015346.9694222.1643839.5961970.7531470.4281351.8387515.3441895.8092389.731673.6961633.2471889.546
102100a316738cfa2026-09-095471Add JSON_HEDLEY_WARN_UNUSED_RESULT to the current accept() overloads (#5471)3175.8915281.30215397.0624240.5763934.3331981.7651475.8901353.3877625.1041896.1812401.097669.7291646.1331895.638
103101c9f1d2d6462026-09-095477Broaden JSON_HEDLEY_WARN_UNUSED_RESULT coverage to pure query functions (#5477)3171.7065286.88015430.8444264.2423880.9431979.9901472.2891357.2837569.8541904.0262407.487671.6731641.5211889.053
1041028e26b9d4b32026-09-095495Make contains(json_pointer) return false instead of throwing on unrepresentable array-index tokens (#5495)3163.7895240.75515337.6984226.1543880.9561971.9121475.3221357.1257632.2811904.0602401.190678.8631638.3711903.385
105103b17c272f462026-09-095472Reserve capacity in from_json() object conversion when the target container supports it (#5472)3152.8995257.64515401.0004210.8463885.1231989.1591476.6371359.8517639.3961898.9812408.243670.0751633.5281894.086
1061043e2de322262026-09-105516Remove unused iomanip include (#5516)3141.3495253.65715364.0744203.9693847.6201968.4221455.0351352.7547582.4941882.0512371.814663.5041630.1721870.223
107105d69fb8654d2026-09-105501Return the parsed value by move from from_cbor() and friends (#5501)3133.4855231.66215309.9264183.2003835.6621971.1251462.4471349.5637479.1361904.2021595.991661.5191630.2781883.994
1081064a93aa4e2f2026-09-105283Speed up parsing of contiguous input (numbers, strings, UTF-8) (#5283)1963.8794221.30811609.5313278.4973857.880927.7791483.7261357.7937483.3431906.9161481.419676.4381643.7461895.551
109107bfb07786cd2026-09-105473Fix to_bjdata() silently truncating out-of-range _ArrayData_ elements (#5473)1941.8944204.97111726.6883264.0553808.784923.7971453.0711351.7607458.1251891.4701473.508662.1641633.0431888.548
110108ff80ed32952026-09-115285Speed up dump(), and keep it from overflowing the stack (#5285)1939.2894175.54111781.2913233.3023816.101914.071441.200540.4736895.041852.2141478.197656.6351632.6751885.303
111109da42a627dc2026-09-115449Stop dump() from heap-allocating its output adapter per call (#5449)1937.6584200.96611639.1983235.4933827.695909.901448.948537.0086909.036839.0271479.968659.2101643.6211878.065
1121101dc1d09fc62026-09-115457Do not search a container for the value the callback rejected (#5457)1937.4594140.07811576.8033271.8383845.193924.316450.148539.0316848.776844.6241470.333671.5631645.6241900.347
113111fae364db242026-09-115458Move the scanned string into the value instead of copying it (#5458)1986.1464110.78711757.1573150.9323830.550918.517442.629539.6066913.104843.9201417.037655.2591628.2241892.991
114112dd50f0eb162026-09-115502Stop CBOR indefinite-length strings from recursing per chunk (#5502)1987.8534033.18211613.8343116.3783841.164915.943442.366539.4806864.130836.4581431.035656.1461599.5741885.858
1151134bb2de8cc52026-09-115503Reject a nested BJData ndarray dimension vector where it is read (#5503)1981.2984086.27611569.2403141.5393829.870923.087444.038539.8636800.724835.4341429.637655.4481628.9991879.300
11611444f8ec30e92026-09-115504Bound UBJSON optimized arrays of a valueless type (#5504)2005.2654092.26511730.1983130.6353863.992925.033448.222542.3236893.078849.9011437.855662.1711638.3061896.324
1171150dd8ca90232026-09-115505Read MessagePack containers without recursing per nesting level (#5505)2019.9834105.30511862.9793142.5813891.601927.092447.942543.9366939.963845.6341442.889656.5781637.5121897.815
11811691ab3e81f52026-09-115506Read CBOR containers and tags without recursing per nesting level (#5506)1986.3344039.96111554.0943118.7613783.101912.504440.410534.8946831.943834.6611439.061655.2871615.6191869.912
119117a14619b3542026-09-115507Read UBJSON and BJData containers without recursing per nesting level (#5507)2011.9594095.86811782.6883135.2643873.604926.014447.638541.3046905.838846.0511468.512664.1611629.0831898.772
1201180452641c182026-09-115508Read BSON documents without recursing per nesting level (#5508)1974.1604043.88711662.9383095.0113832.744916.007439.914534.1496904.453835.6151450.792648.2981616.9171874.133
121119aa391dc0a52026-09-115520Fix two develop CI regressions: dump() nodiscard warning and binary-reader const-correctness (#5520)2003.0104068.01011771.3643137.2663825.247924.668442.416539.4786847.083841.9961460.659649.3781633.7381885.897
122120a50c2537eb2026-09-125476Reserve capped array capacity in json_sax_dom_parser::start_array() for definite-length binary arrays (#5476)1986.4884063.88311588.3333077.9953827.479908.419440.959539.1146806.177833.5551452.851662.4221627.9951915.388
123121c0b2878a442026-09-135493Swap diagnostic positions in basic_json::swap() (#5493)2010.8814081.05711734.7303130.9193882.258925.490450.092542.9536925.188848.4861480.051698.6361643.5081933.941
1241221da2f689922026-09-145522Only reserve array capacity if the array type supports it (#5522)1972.1224048.62211775.0623107.9383803.528909.385441.204535.8856793.927842.8431446.330658.7871619.2391899.164
1251236487678bc52026-09-155464Fix swap(array_t&)/swap(object_t&) to update parent pointers under JSON_DIAGNOSTICS (#5464)2023.0284116.16911737.4383165.1723893.266924.912448.959541.5296970.438852.0391483.231689.6311635.2401937.356
126124c72f37a40d2026-09-155443Support custom object/array types and improve template parameter handling (#5443)2001.6174076.54711666.5833109.7563918.206923.197450.592542.2666901.703846.5581468.284660.1161641.5861905.840
127125502e9d66f62026-09-165479Fix to_bjdata() emitting the Draft-3-only 'B' marker in default Draft-2 mode (#5479)1970.9354018.06011445.5003079.4093809.050910.459444.217539.2916851.407833.7551444.697698.0401626.6011889.024
128126c41152e6202026-09-165494Fall back to plain-object encoding when to_bjdata()'s _ArrayType_ annotation is not a string (#5494)1979.4814054.68811734.2923085.5423819.351916.992445.126539.8706853.005833.1901457.166665.3911629.5861888.734
129127e564136c222026-09-225465Make diff() account for member order in ordered_json objects (#5465)1970.5194063.74411605.1983087.4973848.867915.695447.051539.7116835.172841.4021452.004664.5601640.7511890.473
130128e4854411232026-09-225466Restore a duplicate key's prior value when the callback rejects its new value (#5466)2012.9204099.26511796.8953156.8183913.812931.464451.403541.4196981.041846.5361469.521704.1381633.3271905.709
131129a2b19d61582026-09-225467Honor allow_exceptions=false for excessive array/object size (out_of_range.408) (#5467)1996.4784084.42211734.2083129.0993850.854923.499446.555539.3796949.427842.0291453.166694.2001631.1331888.865
132130d2c1a6a2722026-09-225468Reject array insert(pos, first, last) iterators not pointing into an array (#5468)1983.7674066.65111618.6673128.5053848.427914.900447.603541.9736915.265844.3071458.762677.6991638.7891892.443
1331310b20b7e6222026-09-225469Reject MessagePack/BSON binary subtypes that don't fit their wire format (#5469)2010.5484097.47611681.2183121.0103866.146925.619448.533540.7866957.000843.3491463.518658.3021630.8571902.522
1341321054b2097e2026-09-235286Speed up binary writing: value-type output sink + byte-swap number encoding (#5286)1989.7394101.39312034.4383157.2403853.987910.115449.084555.9706884.386864.5261471.905656.6351661.8061926.233
135133ed513715a82026-09-245534Document that a NUL byte in the input is treated as end of input (#5534)2016.2364104.76311906.3233141.1383936.240916.611455.397562.0536987.917871.1101475.622657.8771676.9341936.557
13613456b3ee566c2026-09-245389Fix stack overflow when copying a deeply nested value (#5387) (#5389)1998.3564051.20611660.8653101.1073834.672910.072452.943544.4646908.974849.2121460.691638.6441650.7491914.423
137135918da646572026-09-245542Keep BJData ndarray annotations that would not survive a round trip as objects (#5542)2003.0094042.96911517.3753095.1223815.360908.444448.415539.4236911.041840.0441449.543671.5301651.7091908.408
1381368699de30642026-09-245555Stop allocating the BJData excluded-marker list per container (#5555)2001.7184071.33311686.4273122.0653796.757900.895447.123539.9186860.765844.7521444.435646.6081644.9431879.295
1391372e91641de22026-09-245544Test JSON_BRACE_INIT_COPY_SEMANTICS for real, and fix one-element tuples under it (#5544)2004.7854083.91411662.2703119.6023917.914922.465454.869547.6316987.234853.0101469.612649.9461672.2461913.098
1401387c90ec23232026-09-245546Hash deeply nested values without recursing per nesting level (#5546)1952.9124071.15911594.9273117.4973793.052900.729444.245539.7876854.406841.2641457.530643.1391638.5781890.482
1411394daca40d7b2026-09-245547Merge deeply nested objects without recursing per nesting level (#5547)2008.2264104.39911619.5423148.6043918.175921.207457.191547.5536942.265855.3521464.974651.9241665.2321915.869
14214001b53c8c152026-09-255552Keep JSON_DIAGNOSTICS parent pointers of ordered_json members after erase() and update() (#5552)1979.3544061.37811603.4803098.5863875.258919.125455.911546.2696940.026849.5111461.751648.8411660.9781917.254
143141abbe52d6de2026-09-255344Add JSON_PRECISE_STREAM_POSITION to leave the character that terminates a number in the stream (#5344)2001.1704081.61711653.5313131.3313876.208915.153453.436546.7206971.864848.9001463.182647.9461662.9431906.246
14414202dd3e67f22026-09-255390Fix stack overflow and exponential runtime when comparing nested values (#5390)1987.8614074.03911596.0003161.2843901.497919.541447.553543.9486910.162845.6681455.759664.2241652.0741930.575
145143465407f3ce2026-09-252818Improve error message for const fields (#2818)1975.2744118.56511863.4483130.5413880.764910.767452.904545.3636906.890843.1181459.728645.7701654.2651934.900
146144632a5812a82026-09-255272Support zero-member types in NLOHMANN_DEFINE_TYPE_* macros (#4041) (#5272)1963.3234021.52611747.9593102.0063784.896904.545444.355543.7486840.604841.4161438.306639.2231649.8161930.274
147145d19f7f5dce2026-09-255185Fix BSON conformance issue (#5185)1958.6064048.53611541.0113086.8053817.875900.452446.001544.0716824.323837.0781971.245641.2711651.2091934.647
148146c60a0bc3362026-09-255573Allocate the deep copy's key scratch space with the provided allocator (#5573)1965.2164021.45911630.8553074.0783807.258902.782444.394542.5626919.969840.9421975.668645.8271637.4291918.607
1491471e442620912026-09-255560Make JSON_STRICT_NUL_HANDLING part of the ABI tag (#5560)1961.8624069.61711594.0833117.5003817.758909.186448.820544.4206845.802844.0161977.909645.8641651.2691937.217
15014895e9a5931c2026-09-255553Write BSON in linear time, without recursing per nesting level (#5553)1965.8324033.39411589.3643120.4223792.091905.110446.984543.3286794.244844.9431991.659640.1881647.6751928.562
151149fe4a544c7e2026-09-275515handled when size exceed uint32 (#5515)1998.2444047.20811755.2093091.7763815.000908.733447.990546.2956903.084850.9461993.351645.4871654.3431933.385
1521504fa95d98102026-09-275583Remove unreachable branches from the binary writer (#5583)1983.3234038.33111666.4803092.8413844.935910.149449.697541.1106840.583830.6041979.750653.5421650.6701928.883
1531516178982b8d2026-09-275582Compare unordered objects by key below the nesting bound (#5582)1971.7064073.49811600.6463132.7003830.323910.231448.982538.8126836.770846.1492007.607657.1801653.0891934.675
154152f7972970a42026-09-275584Throw instead of writing MessagePack lengths beyond UINT32_MAX (#5584)1969.4174013.02111602.4473083.5523842.495904.223447.444542.1706862.735839.6282000.766655.0341653.0061939.922
1551536bd106893a2026-09-275559Fix CBOR tag handling in cbor_tag_handler_t::store for non-binary items (#5559)1969.2504034.69311691.5003119.1713827.860916.053455.026542.5776886.360839.7182012.919653.0311651.0901931.698
1561541e101ecac12026-09-272998Add BON8 support (#2998)1975.8044082.37511658.5423192.8283758.141907.029444.920556.4706844.698849.2761977.153649.1811645.3061920.836
1571559e1a09eec02026-09-285594Name the key type when rejecting non-string CBOR/MessagePack map keys (#5594)2006.5824151.78411788.5323156.1563845.052915.647454.027557.8466814.282864.0942021.072654.0951663.0511947.078
158156fc03b9912e2026-09-285597Look up the locale decimal point at conversion time, not lexer construction (#5597)2020.4314172.91612716.9583196.9583909.774910.001449.314547.3346900.968852.3062048.019665.8431696.9371982.586
1591575b9ffae8bb2026-09-305616Move the float conversion chain out of the lexer (#5616)1992.3324167.32812638.5733212.5153842.885906.649446.941539.6746952.672839.0422021.057695.8131684.6891967.216
160158d268eaa6932026-09-305617Convert floats with Eisel-Lemire when std::from_chars is unavailable (#5617)1987.6084086.12511507.0623170.0133830.425898.856445.077542.8546919.568839.2102021.918666.9251701.4661951.211
16115965af2601172026-09-305609Move instead of deep-copy ordered_json values when an object grows (#5609)1998.9814134.05711592.8553192.7793863.005904.702446.575539.6856850.886840.8452035.646680.3311682.7551968.744
1621606a8a7735ed2026-09-305614Do not throw in contains() for an empty array reference token (#5614)2008.4474144.02411612.1763165.4683842.060905.045443.941539.7556846.042846.2481998.713669.7521684.7171953.487
1631610050d0f7a42026-09-305637Share one nesting depth limit between all bounded descents (#5637)2021.0784170.58111589.8863224.9633937.021906.411448.033541.1776911.391848.6412040.978670.0051703.5931984.639
16416268beba727c2026-09-305679Fix from_json() for enums with underlying type bool (#5679)1986.4684139.03311632.8333201.3513798.006888.464438.471535.9036843.110836.0301996.109685.0531672.4301940.598
165163fc4c9c34462026-09-305680Fix clear() to also reset the subtype of a binary value (#5680)1972.5614094.86711540.1573155.7223833.925893.243445.764539.7396848.562843.0682016.293664.7881685.7591965.342
166164678fd3017b2026-09-305681Fix element path for map/unordered_map JSON_DIAGNOSTICS errors (#5681)2014.7834164.47111563.6143219.8653891.917892.727445.945542.0446900.807844.4222034.323669.9011688.0511981.601
1671656d7845d2072026-09-305683Fix deprecated json_pointer/string operator== warning in value() (#5683)1965.1974105.78911501.3643157.5443800.289898.122445.399539.6856900.433834.5412000.133652.3541670.9451960.876
16816642f89e31302026-09-305684Let to_json(std::optional<T>) propagate exceptions from T's to_json (#5684)2016.8994156.43011476.4893216.3153895.245908.714444.300541.7646923.422839.4592018.934672.8591689.3061987.428
1691676218aa212b2026-09-305687Throw std::length_error for operator[](SIZE_MAX) instead of corrupting the array (#5687)1989.1584149.15611547.2293193.0153845.187905.308446.389541.2906853.266843.0282037.245661.2131681.3901966.649
17016811518265082026-09-305691Take diff()'s fast path unless the object type reorders members (#5691)1991.2804147.34111570.3123171.1823847.333904.510441.250539.8036885.776836.3032018.693665.3071685.9901970.057
171169e444a662762026-09-305693Copy values before inserting an initializer list into an array (#5693)2000.7744175.50711546.9793189.3573841.169897.455442.384539.4936839.688836.2132014.519667.3901685.4181968.991
172170bfea6f36d32026-09-305694Fix to_msgpack() reading the inactive number union member (#5694)1997.4654144.27911549.7813224.2873855.120899.475441.995539.9246903.776839.5502019.396664.4871688.2491954.211
1731715b11a0282c2026-09-305697Exchange the CustomBaseClass subobject in basic_json::swap() (#5697)1987.9834074.34911483.1143174.6323841.604893.256438.279535.8856866.641834.3281996.396660.8281676.3001936.210
17417244a88d85be2026-09-305698Fix NLOHMANN_JSON_SERIALIZE_ENUM_STRICT's from_json message (#5698)1972.2374125.94511373.9173158.7163810.039890.097438.075534.5776867.432842.0452028.150664.2061681.3531936.231
175173bfe0f32d712026-09-305699Fix std::terminate and null pointer access in input_stream_adapter (#5699)2014.3714159.77911667.4163200.4253876.135911.716448.788543.1986932.657852.3972056.197668.7641699.5731984.479
1761744bb1b14b062026-09-305702Trim the compiler-appended NUL from wide/UTF string literals too (#5702)1979.7234105.68511603.5623180.9323846.698906.188443.969534.5346837.479840.5882006.043654.8511672.2891965.408
1771755bd766aa502026-09-305703Move to_bson's binary subtype check into calc_bson_sizes (#5703)1999.6064183.38611588.6463192.7713844.425900.169446.795541.4066888.114847.1072022.637663.4801686.7021974.777
1781766ae17630a42026-09-305705Reject integral keys for contains(), find(), and count() at compile time (#5705)2000.4054157.12011551.6563197.4173891.646903.558448.544541.5536914.203848.5612042.578663.6611691.9101974.341
1791777fd68957882026-09-305706Hide a discarded container's content from the parser callback (#5706)1971.9874075.36211463.2193164.9093797.453889.534443.974535.0266857.323835.7932025.343651.9701687.6701951.428
18017866877675b12026-09-305719Check the iterator range for binary values in basic_json(first, last) (#5719)1970.3694104.88611534.6353168.6013796.291897.271444.655538.9176826.990842.4452016.962650.0991673.9401953.693
1811792ea6d8c1272026-09-305720Require the found key to equal the looked-up key when comparing objects (#5720)2015.5564188.88611567.1253251.8903863.818903.970448.691540.4226912.255843.7742044.479653.8321676.6341951.959
18218067435c9c7e2026-09-305721Give a deep copy its type only after its container exists (#5721)1994.2574160.65811600.5533218.3673880.128900.769449.260541.6076899.448841.6352043.909666.7591694.6461974.861
1831816fc0d501f32026-09-305610Move the user-defined string literals to <nlohmann/json_literals.hpp> and add JSON_NO_AUTOMATIC_UDLS (#5610)2021.7154187.88811647.5943209.3883925.060911.591450.961544.3036975.265845.1092049.853670.2951697.0191987.428
184182fdcc569eee2026-09-305692Use only documented StringType members in json_pointer (#5692)1965.2644147.27311378.1883159.3643787.758889.399447.397535.0626809.698835.1162015.202656.2411689.0721955.238
1851836a073dbae42026-09-305695Give operator>> a strong exception-safety guarantee (#5695)2010.9794211.98211698.2183205.4013897.172898.499445.961545.2256898.870847.0422051.316664.7161706.4011981.247
1861843b6ae43c532026-09-305598Add JSON_DISABLE_TUPLE_REFERENCE_CONVERSION to fix std::tuple conversions (#5598)2025.1224195.46811682.1993204.5293924.068904.766448.209544.6697041.276849.1032047.488665.5921695.9871984.755
1871857d7055ec502026-09-305723Fix stack overflow converting deep values between specializations (#5723)1985.3104117.09911457.0523157.5913832.175895.910442.225535.2376864.375833.6532001.760679.8261674.8191956.998
18818635802e78d62026-09-305735Remove dead Makefile targets; document macro_builder; tidy serve_header (#5735)2004.4984163.06511590.5943184.8103902.229906.494447.394539.5426923.969845.5962044.457666.1871692.0191977.030
189187c2615784312026-09-305730Deduplicate binary reader/writer helpers and fix stale comments (#5730)1968.7234154.78911441.7183160.3673870.578889.545443.139535.3146850.886837.2812024.650660.8421691.6281978.000
1901881d675cdb462026-09-305733Fix CI jobs that check less than they claim; move arm64 to GitHub (#5733)1995.7044206.18511691.1253227.6223966.104909.748449.770541.5666951.938852.5062009.592663.7011686.2651983.285
191189a32f61eb982026-09-305678Fix update() and merge_patch() when the argument is *this or one of its members (#5678)2014.8104157.10111636.1353210.3263924.659899.344448.133541.3716913.401841.4872038.263667.5151697.5031980.686
19219018dd5663b02026-10-015548Diff deeply nested values without recursing per nesting level (#5548)1990.9314152.50011469.6973204.7403985.593903.248448.981540.9746929.740847.4932040.504665.3521698.9031981.438
1931913926fcaac32026-10-015729Deduplicate serializer dump code; fix stale includes, docs, and lint (#5729)1999.5564178.48911581.0003208.6573876.755891.669452.445538.5256893.078846.7212042.010662.1541689.6531975.503
194192cff0a613692026-10-015731Share DOM SAX position handling; fix stale parser and lexer comments (#5731)2017.2314112.60411588.2913157.0473890.343902.329458.713539.5397020.568847.9952073.873654.5621696.8231978.381
195193e4007805332026-10-015745Re-amalgamate single_include (#5745)1980.3384100.65911418.8543166.8963835.432885.298452.886538.0536888.203824.6662031.410650.8461668.9521949.107
1961946aec1a085f2026-10-025677Report BON8 input that ends after a UTF-8 lead byte as truncated (#5677)2003.3214099.06611614.3643159.0293849.857899.995459.542539.4366904.474843.2212071.503652.3031685.7021972.556
1971954d46bce4e12026-10-025750Fix CI on develop (#5750)1962.6854025.67711277.7183103.0523785.213894.610448.583533.8876870.062834.8562020.231658.3391674.8741954.242
19819663c10a51fc2026-10-025638Review and extend the documentation, and check it in CI (#5638)1968.9544036.85111425.1353104.3593797.852902.519451.067537.6686910.375852.4382043.889674.9381701.3141971.711
1991976d0867a85f2026-10-025751Make comparisons with scalars noexcept only when the conversion is (#5751)2008.3604091.45311376.5623144.5753820.110903.850455.980538.0356851.885841.5492010.128667.1821690.5861970.957
200198d11e89471b2026-10-045606Assert on missing array indices in const operator[] and document the JSON pointer case (#5606)2000.1214075.69511475.5203139.4563837.211900.437453.703538.8956921.432845.0642027.417663.9691679.1481964.082
201199df27cc3d4c2026-10-045682Add scalar-on-left overloads for legacy discarded comparisons in C++20 (#5682)2010.8384092.43211495.6253125.7263873.167911.281456.807538.3866911.630844.4512033.630688.2191691.4071971.697
2022006f2048cd5d2026-10-045685Accept lvalues in ordered_map::emplace's value parameter (#5685)1999.8164095.00611445.7403136.6853924.146918.692458.336542.4236968.520848.7832037.096667.7721708.2742002.449
2032010d01d6ae902026-10-045686Classify leaves with operator<=> itself past the nesting bound (#5686)1983.3204116.98111466.2503192.9693923.208914.596456.625539.5586975.537849.2522056.035701.2211716.4931983.908
204202b7309464322026-10-045689Fix key types convertible to std::string_view breaking lookups (#5689)1990.2884060.48711377.7093107.5373803.857892.191451.727538.0456896.480844.9892018.884658.6491676.5662023.638
20520349cd4271962026-10-045690Copy-construct the base class of a deep copy's elements, not assign it (#5690)1983.3204033.15611333.8433138.5473882.878894.785454.473538.3376918.619841.2052072.151655.1931693.8711977.288
206204756b28c2b82026-10-045696Keep a NUL byte ending a // comment as the end of input (#5696)1985.9314099.33111579.8753148.5603872.422896.276451.436536.7746901.156845.6312014.820648.0541685.1991971.762
2072051edf0ef0412026-10-045700Fix value(json_pointer, default) aborting under JSON_NOEXCEPTION (#5700)1987.2334076.13311442.6253124.0993888.688898.266454.349539.4236950.140852.8032030.279654.5861691.7511978.197
208206a212d3b2e42026-10-045722Preserve the object comparator's state in a deep copy past the nesting bound (#5722)2000.1384113.47111391.8543151.0063866.904905.695455.384539.5046929.818842.2132029.619674.4381697.0441983.856
2092071df1e8a8452026-10-045591Make cross-string-type basic_json conversion explicit without implicit conversions (#5591)2000.5334107.99411370.9893160.8543881.635897.877455.201540.3076927.167840.1302053.458664.1181697.6181982.876
21020838a2db260c2026-10-045728Remove dead metaprogramming and duplicated code in traits and pointers (#5728)1971.4504040.82811319.2703109.5213819.505903.606451.137538.7256825.640843.9512016.652663.1601684.5961958.896
211209c5650eaa3c2026-10-045704Reject malformed UTF-16/UTF-32 units in wide-string input (#5704)2006.6894133.59411469.2093180.9303881.633902.924456.572540.5576992.385850.4742025.267652.3671680.0251957.468
21221040021f38fb2026-10-045589Add basic_json::as_base_class and document name conflicts with custom base classes (#5589)2012.6734147.19311453.2503167.4483892.542910.149457.238541.6426998.084852.2472049.759652.8681688.2291972.508
21321173e9eae3c12026-10-045746Add an error_handler parameter for UTF-8 to the binary readers and writers (#5746)2013.8454130.23711456.0413135.6883818.956892.111449.408538.3086825.213835.8721495.468697.0541679.7601970.285
214212d8d47be4a52026-10-045754Fix CI on develop after merging the ready-to-merge PRs (#5754)2013.1914119.94811573.6563173.0293941.703912.201459.208541.2647013.364848.9081514.681699.2731685.3911984.652
2152136b4b825af22026-10-045607Handle numbers that do not fit narrow number types in the binary readers (#5607)2009.1904044.12711362.6773127.6883827.841892.131449.386534.7316915.360829.5621487.640697.2061688.2371952.157
2162148c1f60a45e2026-10-045600Store maps with enum keys as objects (opt-in) (#5600)2008.5604128.05911523.0113187.7633843.177912.520456.427537.5146859.010839.6851501.515696.5081688.8481968.910
217215c5a7a4b46d2026-10-045688Add deprecated from_bon8/from_bjdata(ptr, len) overloads (#5688)2030.3104108.50511412.9073141.8363899.435904.756455.298541.0696926.151846.2401504.193700.8201693.9831987.713
21821623d3b373e12026-10-045755Add JSON_DELETE_DEPRECATED_FUNCTIONS to delete the deprecated functions (#5755)2018.7084106.01511533.7293134.9453826.409899.623452.833538.5446846.443830.5551509.060705.7241692.8191971.476
2192178a142bc4362026-10-065764Fix CI on develop after #5600, #5607, and #5755 (#5764)2017.5334151.85411526.3343195.2403884.953907.457456.697540.1146891.136844.1451517.241699.0511690.3441972.104
2202185379e04ce42026-10-065761Throw type_error.321 when serializing discarded values to binary formats (#5761)1999.1564055.30011427.5213153.5813836.060891.927455.413540.9386883.093853.0941510.099701.8881686.6951982.806
2212190a365865f92026-10-065762Make basic_json destruction allocation-free and non-recursive (#5762)2024.2894081.64610719.4283112.9583900.503924.900462.081540.7656965.453850.0191511.381669.8021620.2691912.078
2222205ecb704f6b2026-10-065592Speedup; check for the expected separator before the lexer's token switch (#5592)1920.4283801.97910139.2502891.8623833.159823.859451.951540.3106885.672843.5701512.778668.7931608.5011885.206
2232216d4543e7432026-10-065767Fix destroy() for ObjectTypes without reverse iteration (#5767)1929.0303843.26610232.5412911.4583926.867830.030450.002542.0436938.890846.5891515.211675.2641622.2451904.006
2242229b179cee1e2026-10-065770Handle all value_t enumerators in has_no_children() (#5770)1931.2753794.49710155.1252891.9273871.831829.432446.176535.1266909.625833.1141498.945677.5711615.7851884.043
22522369874e45442026-10-065760Fix NUL bytes in UBJSON/BJData high-precision numbers (#5760)1924.8963853.08110247.7502926.5153872.041835.227453.025541.0026919.037842.2401521.169674.4871607.4411880.884
226224162e13b86f2026-10-065758Add with_*_t alias templates to create basic_json types with changed template parameters (#5758)1938.2683842.12610289.9682914.1043962.414834.967455.536543.6306969.266850.0821530.064678.0541635.3031916.763
22722521a69230bd2026-10-065585Create a value before giving it its type (#5585)1918.1653829.35410247.6562914.6193874.909832.287451.252543.7916873.995839.5141521.088699.6041615.7421894.449
228226ff6f3d7d4a2026-10-075766Reject nested indefinite-length CBOR string chunks (#5766)1926.0743868.81010256.8232919.8023957.807832.129457.241543.6407024.745847.7701522.612705.6231634.2121918.402
2292271c754cfe312026-10-075701Copy a pair-shaped array value under JSON_BRACE_INIT_COPY_SEMANTICS (#5701)1930.6523828.19510263.9272921.5703901.404832.628455.652541.7016909.037843.5631512.309704.3541623.2541909.917
23022824dd7c63f02026-10-075777Re-amalgamate after #5740 (#5777)1908.6323833.93010278.1462905.4433935.422838.465454.491545.6056905.047839.0871519.816709.2231618.6431886.706
23122930e542e52a2026-10-075776Declare the namespace-scope constants in to_chars.hpp inline (#5776)1934.9343823.72410229.6362916.6983929.565829.102452.279543.0386951.995837.0591524.049720.7221619.8231903.938
232230367336c83d2026-10-075779Fix CI on develop after #5585 (#5779)1928.9213780.92710153.3952883.6043877.750824.488451.999543.6626927.395835.4951506.387694.0581622.9031907.732
233231069ace74af2026-10-075707Round-trip BJData ND-array annotations exactly (single precision, key order) (#5707)1937.3873843.71610184.3022923.3233936.570827.610456.123543.1696907.756847.0201515.229696.2021626.0011901.142
23423243fe8928e12026-10-075781Stop binary writers overflowing the stack on deep values (#5781)1961.0463868.27410300.5732899.7923982.526845.594461.395543.2987059.093846.6961522.728697.7171623.8461921.370
235233a5f5d3059b2026-10-075772Make std::hash<basic_json> consistent with operator== for numbers (#5772)1949.2203857.15910170.4272890.0523981.349840.234459.334541.9476953.786843.4951509.713703.3391627.0861911.653
236234a269794db72026-10-085782Use MSVC intrinsics for full multiplication (#5782)1931.8693817.74210159.6662902.8203903.263840.740455.827540.6216884.562843.2721513.776702.0281614.4591901.008
23723569a0c1b82c2026-10-095328Avoid allocating temporary basic_json for cbor and msgpack object keys (#5328)1909.5793777.56010065.6822852.7323897.659833.289459.856540.6316882.354833.9981498.288314.0591609.3431906.714
238236374dfe4f0f2026-10-095791Keep converted object keys alive while writing UBJSON and BJData (#5791)1911.2743827.18810159.5532886.5683890.388833.632459.800542.6496954.547838.5071509.324314.3571613.6551892.838
23923744e85977012026-10-095792Flatten deeply nested values without recursing per nesting level (#5792)1940.1033811.77910139.3962865.0503874.896835.001459.686544.0656866.943836.8621496.298314.6171614.8371891.741
2402382913e964332026-10-095793Unflatten in time and memory linear in the pointer depth (#5793)1908.4533785.09910262.1472878.9613920.657845.619459.806543.9986874.813832.6591486.901312.1751589.6201863.981
24123984ee12a67c2026-10-095797Make UTF8_ACCEPT/UTF8_REJECT inline variables to avoid TU-local exposure in modules (#5797)1922.6913792.84910162.6562871.5623887.719836.308456.522542.5776912.807840.3691497.447313.6831609.9881899.591
2422401649d9eda42026-10-115783Use and extend the detail helpers to remove duplicated code (#5783)1916.2583804.24210297.3442913.1183847.662836.519453.270538.7506953.015832.7741506.068324.7151596.9741875.878
2432412cca04ae6f2026-10-115800Report one-character non-numeric array indices like longer ones (#5800)1932.3273803.75010135.4382881.0413894.622840.016458.569538.0376842.948829.4441499.722324.8111607.1941875.851
24424274a03dec842026-10-115802Throw type_error.321 for discarded values in to_bon8 (#5802)1924.6953814.85410084.2392873.1803848.498839.406450.575534.1816893.005834.3001503.369324.3891607.3231887.871
245243e8b747e4bc2026-10-115808Re-amalgamate single_include after #5795 and #5806 (#5808)1937.9953840.62210221.9902896.0243885.568834.394458.874539.7716906.182839.7931517.689324.8001609.8381890.885
24624440a62947d32026-10-124965support JSON Merge Patch (RFC 7396) diff creation (#4965)1932.0213822.18810248.4162924.5603980.331842.462459.010540.2376978.526838.9411529.508326.4351636.1531917.472
247245f23830b65e2026-10-135809Derive the lexer position lazily for seekable input (#5809)1814.0753368.0289974.7552807.5323943.229647.639457.018551.2066954.166843.3551522.762315.7161618.9531903.816
248246aa9620fb152026-10-135810Skip the indentation after a newline 8 bytes at a time (#5810)1719.6292959.34410139.7712799.5553939.292592.867465.821545.8586968.068849.1671519.774315.3851629.9811907.253
249247e839bbd1c02026-10-135813Export client-facing headers from json.hpp for IWYU / include-cleaner, and check clients in CI (#5813)1725.7422949.07010136.6032821.5913919.927589.957463.642544.8516987.427843.1511517.562314.4251619.6711903.613
2502485b4c8f9b002026-10-145738Speed up the lexer: own float parser, string scan, and \u table (#5738)1615.6682934.5658763.6512794.5033928.286559.107374.921516.3916937.140815.7761513.238325.0431625.2261912.905
25124991a7a94cc62026-10-145634Write doubles with the shortest digits (Żmij), digits in registers (#5634)1613.1262929.5998708.5992783.9543874.248548.449363.632468.1272421.176745.4661511.406323.7431614.1951900.392
252250a6e9785ab62026-10-155831Look up the key only once in the callback parser's key() (#5831)1589.3092938.5578798.8232767.8723882.154547.301364.257467.8332395.851744.7161506.830316.1921623.7711899.458
2532510c4e7c103c2026-10-155834Make flatten() linear for ordered_json (#5834)1625.7542936.2038755.0882793.0813879.740557.529366.745468.3592418.388746.2101524.325315.9541614.6771898.544
2542520a4b3a84ee2026-10-155836Speed up JSON pointer parsing, formatting, comparison and lookup (#5836)1622.9142915.9018819.0732783.9903922.758558.429366.216470.0192427.606747.1681526.881316.9721625.6111912.601
2552536ba53e63dd2026-10-155833Speed up array-to-container from_json (#5833)1626.1552920.7478777.9892782.8703988.206560.154367.695469.8922427.262749.3011529.474316.3991631.8101915.217
256254ca7740fef22026-10-155837Move elements when converting rvalue containers to JSON (#5837)1615.7472928.7788765.7922773.0623926.456561.034367.498469.8072424.344748.4231523.215316.3391624.3741894.455
2572554530d9681c2026-10-155832Fix quadratic parent updates for ordered_json with JSON_DIAGNOSTICS (#5832)1618.9372911.3788794.0942763.1913886.974555.789366.475469.2752415.231746.7551512.590315.8561618.2261899.284
25825691869983a02026-10-155840Make the value lifecycle inline-friendly (#5840)1595.0752832.2748420.3902690.0503876.841555.209366.118469.7832424.335747.9311485.914314.0481549.7871775.823
2592576a27b9acb22026-10-155838Construct remaining hot-path exceptions out of line so core functions inline (#5838)1589.5352824.3608466.7552699.6903888.990557.917364.879471.6012422.995746.5431498.371314.9781539.6561797.752
2602584f115126412026-10-155835Speed up container destruction, iterator access and diff() (#5835)1515.7502714.7568639.2132574.6983805.860561.827366.793469.6802421.769748.7271383.744317.2481446.5251705.789
261259ed86019a212026-10-155839Move binary reader error construction out of line (#5839)1507.9072766.7748597.8702622.2893767.638553.026362.644468.4822408.731744.9361362.080324.8331445.5311703.216
2622606261d1e4322026-10-155842Construct the JSON Patch exceptions out of line (#5842)1532.0152756.8678670.6772617.9893869.133558.865365.834469.9322435.279750.2951380.628327.0101453.3401705.232
263261ce28c722bc2026-10-155815Allow the same type for number_integer_t and number_unsigned_t (#5815)1533.0452775.8078543.7552615.4123776.721553.127365.866471.1742433.384745.3091372.372328.4051452.8481716.649
26426291b9ee26022026-10-155829Update cppcheck to 1.5.2 (Cppcheck 2.20) and fix its new findings (#5829)1516.4502748.9618571.5212599.8703807.744557.303367.220472.2092421.389743.8891379.405326.0871451.9261710.506
265263dcb96e82fb2026-10-155822Escape characters below 0x60 from a table straight into the write buffer (#5822)1525.7772734.9638524.7712588.2893790.726557.907360.057463.5742430.626743.3821375.816325.3081439.9471695.307
266264b41228c2272026-10-155843Fix AppVeyor failures from the Zmij double writer (#5843)1497.9222690.6148406.9062582.4823726.195548.374352.932459.6632398.953737.6391347.507322.8271429.6401682.775
2672654da73dc5ff2026-10-155858Fix compiler warnings on develop from the API performance stack (#5858)1523.1382731.8258474.0732593.1493782.769553.758359.180462.9152380.246739.0491346.755324.9091441.4081698.043
2682665683f5e0242026-10-155859Define less_general() only without three-way comparison (#5859)1504.6892739.1728603.6932605.1593797.057560.213358.865464.4292423.456742.2071374.000326.7021447.4881712.379
269267cd6b428ef02026-10-165860Fix CI failures on develop from the API performance stack (#5860)1510.1602732.6958564.5102603.2423810.518556.015362.409466.0472437.364745.1531377.439325.7531444.8921699.255
270268cc8334113c2026-10-195866Do not use Qt's keyword macros as identifiers (#5866)1498.8582732.6448535.3282587.2583787.993548.267362.607464.4872403.147735.6331368.831323.9971442.7091686.963
2712694da932f5182026-10-195828Make parsing from std::istream and FILE* fast (#5828)1499.2892723.6058397.7872597.2371956.330553.182363.501458.8982397.342733.0541362.816320.3461429.3141698.294
272270122d7183302026-10-215620Add json_document and json_view: node index, parser, and document (#5620)1520.6512751.0998527.1352588.4941994.466560.384362.257461.9172393.611741.1981362.167328.6201441.2111691.238230.700389.375976.277
27327143e97b629b2026-10-215622Add element access, iteration, values, and JSON pointers to json_view (#5622)1493.8752687.3078383.3542567.0781986.311547.934353.938462.3802400.331737.0981374.560322.0121445.5041686.421231.353386.679958.441
2742724c3a3eb5b52026-10-215624Add dump() and comparisons to json_view (#5624)1502.9262714.7478522.1612608.5652001.856552.014359.510462.6562393.110732.0911366.524324.3131442.1191682.564228.836393.082976.976
2752733ff37ead752026-10-215628Scan json_view strings with SIMD and index large objects (#5628)1514.5802728.6198406.5622609.7582041.176556.017357.330462.5732383.158733.9391368.057324.3911442.7111700.884177.833367.806950.071
276274823eee3b592026-10-215630Add editable json_documents: set, push_back, insert, and erase (#5630)1498.1342754.8108537.0622588.4741994.441556.670353.931463.6462392.987740.0231357.930324.1291441.6221698.022181.404376.470962.253
2772754971200b542026-10-215632Add images of json_documents: save() and load() (#5632)1494.2312681.2118425.8342543.2761984.849548.146354.762460.4402414.747734.6791363.841321.3491421.8061670.134177.777368.631949.292
2782764155e2938f2026-10-215633Write json_view's dump() without a call or conversion per token (#5633)1500.2472712.3578612.1932597.2112012.860558.559359.889462.3712412.896739.0481372.456324.0701441.5461697.571180.320371.514954.088
27927708d7fbb0a12026-10-215874Read FILE* input with std::fgetc under MemorySanitizer (#5874)1543.1242758.2118565.7302584.4532046.255558.522358.865464.5422421.435743.7151374.005324.6871462.5721700.819180.714372.601965.361
2802780cbe95ffa22026-10-215824Speed up writing CBOR and MessagePack, above all integer arrays (#5824)1501.5502706.5348707.1202584.8072039.728551.688360.692466.0242397.182742.7771361.847201.4881429.2231682.436178.641371.038946.389
281279bd5227c2ec2026-10-215805Fix silent wrong results for custom number types (#5805)1511.0362733.3258786.4062588.9062000.483553.456360.458465.9892398.381743.3381370.524201.1681444.0511701.345179.776372.557954.733
282280e13e9768012026-10-215851Accumulate number digits while scanning them (#5851)1501.7372667.5707762.3652523.2891987.518545.368359.336462.0562407.652739.2261368.104200.6321440.3901688.117178.721374.278956.353
2832815e13f834c12026-10-215852Copy the text of float tokens only when a SAX handler asks for it (#5852)1512.3182655.3127314.3542515.0442019.288547.993362.038463.7882410.262745.8391364.898208.9691450.4221713.902179.198371.996968.699
284282e9970066c52026-10-215853Scan strings with SSE2, SSSE3, or NEON (#5853)1488.7052654.4047339.5892551.0502015.716486.719341.381475.5912434.369756.9731376.754208.7971449.9811706.044182.358379.153968.355
285283fa37b952df2026-10-215854Match literals without a stack array and keep parser states in bytes (#5854)1471.8942619.1647285.0002485.8831949.380471.534347.785475.2872413.552751.4871374.254207.5221443.1771699.611181.643377.971977.268
28628452fecc1fab2026-10-215855Move object keys into the value when parsing (#5855)1392.5992628.6887362.5622485.2931882.663471.968339.711473.6632414.903751.3761319.857200.1851448.0571705.675179.410371.865963.306
2872856aefd8c6622026-10-215878Copy short printable-ASCII strings without starting the scanner (#5878)1399.3842664.4017232.5572535.4251922.431470.185320.230418.4402446.082696.7861317.889201.9551447.2171701.135180.860376.217968.215
2882867c26e99ac52026-10-215879Copy ASCII strings in the view's dump with ensure_ascii (#5879)1361.8392610.1827187.1152471.7081853.592464.274313.821414.3162388.840687.8511318.253200.3991434.9861697.487178.601368.595947.799
2892873e031b06a52026-10-215876Use standard library helpers where available, with C++11 fallbacks (#5876)1381.5992592.1227336.7192499.9941848.434467.895315.257415.7882430.769692.2501311.164200.4241444.3031698.311180.149374.484961.091
2902889bf531436f2026-10-215861Speed up flatten(), unflatten(), diff() and patch() (#5861)1379.3012613.2197170.4332472.6281853.035467.161315.217412.3032406.597683.0621298.512198.6811434.0891682.912177.511368.116947.255
2912899855db81f32026-10-225881Silence macro-to-enum for the endianness macros (#5881)1369.1502613.5477209.7872476.2321841.347467.780316.011416.1872415.504686.9201304.263200.8681441.2431694.603178.739368.123948.579
292290aa0b371f7c2026-10-235884Faster std::istream input: inline get-area path, binary reads, unbuffered streambufs (#5884)1375.0302569.3627218.3752484.4251743.476470.240319.245403.7502436.034679.7591319.508201.5311443.3541698.057180.133372.206946.488
29329186d5c56c542026-10-235886Speed up flatten(), unflatten(), diff() and patch() further (#5886)1386.1692622.3317281.5512495.9231700.794472.317317.282403.4162409.097682.5071320.319200.9631444.9081697.678179.138375.751954.573
294292dec0e9b7492026-10-235883Write strings, scalars and indentation in dump() with fewer calls (#5883)1383.2352621.8477151.4122491.6441732.469473.034211.016288.6852276.953416.0681318.490200.5741452.0991701.256180.064372.324960.583
2952936fa14d8f952026-10-235885Write binary formats through reserved sink space and number runs (#5885)1366.9562600.9147176.9942465.3431691.333462.351210.662285.2592301.553417.5891324.173136.6011429.2401687.947179.319368.881962.518
2962940b924f53752026-10-235887Split and print JSON pointers in one pass (#5887)1377.5262597.3947242.6882464.4451739.841466.382211.716288.2022319.771418.2881318.592138.7441441.9831706.639179.684372.087976.078
297295e9c4fe3cdf2026-10-245889json_view: indented and ensure_ascii dumps through the fast writer (#5889)1393.0072627.2267248.2872491.5511769.642469.976211.665291.3272305.655420.1681319.431139.5771457.9651712.927182.274377.741983.284
298296dd7686a2692026-10-245888json_view: faster reading, indexing and C-stream parsing (#5888)1382.4442607.0267161.3652472.6351701.277468.438209.963287.5642276.329415.5111311.194137.8751439.7001696.646177.624367.131977.802
2992979c50bdd1402026-10-245882Make the DOM parser cheaper per container and per member (#5882)1392.6732461.0826068.6252334.7061696.950475.550209.313291.7762300.287416.3491317.581138.1941441.2091707.720178.751367.339978.031
30029801139dc1922026-10-245905Silence an Infer false positive in json_view materialize (#5905)1381.4702463.0136078.0102335.2161709.088475.718211.023291.2122275.302418.0981320.441137.5721443.4341696.436175.969365.658975.272
301299fe5e4018702026-10-255901Consolidate duplicated detail helpers and bodies (#5891) (#5901)1395.8812462.7656066.6982327.7081706.745474.184212.683289.3212283.842417.6571314.153138.0841442.7961696.588177.144364.092961.847
3023003eae5680d62026-10-255902from_json: number-first dispatch for arithmetic types, loop for std::array (#5902)1397.3432477.0606080.8642340.7811711.774481.523213.618289.3602289.503417.5171313.541138.2711440.8221695.785178.731367.293983.555
3033012a56afc7142026-10-255916Fix VS 2015 build of the DOM parser (#5882) (#5916)1373.9292476.1396056.7972341.8901749.167482.883215.107290.0532292.495417.4411320.640137.8681445.2271702.064177.912367.669984.794
304302d6431a91042026-10-265918Throw out_of_range.411 for JSON Patch add into a null parent (#5917) (#5918)1371.6352445.9056017.6362314.1781696.447478.134210.996287.3972278.718414.1861291.197137.3741436.2121682.197175.790361.130962.070
30530381d66291c52026-10-265358Create objects for pointer tokens that cannot be array indices (#5358)1382.9092465.6496052.1142332.5561711.721479.927213.359289.9132289.412417.2011311.695137.5721437.1681696.302177.495367.526963.924
306304d5da84249f2026-10-265927Skip CBOR tags in front of map keys, validate indefinite text chunks, fix CBOR docs (#5927)1374.5532476.4646076.8342346.0751744.224483.375211.423291.1482287.800420.2471320.015137.3691449.0681704.785177.459365.004963.908
3073050c3570d44a2026-10-265929Validate the UBJSON/BJData container type marker for count 0; fix UBJSON docs (#5929)1381.4622462.5786055.1832329.9701713.086484.962210.683290.0242260.371416.8951319.093137.7821453.4951706.801177.031361.025962.952
308306dc768a7d5d2026-10-265930Fix BSON binary subtype 0x02 and check the declared document size earlier (#5930)1386.8562463.4006054.2552337.1051746.441485.425214.508290.9542314.702418.7691325.164139.2551452.1251718.313179.005367.327977.054
30930760107eda3f2026-10-265931Read BJData ND-arrays of float16, restrict ND-array char to 0..127, correct BJData docs (#5931)1389.0512464.4576049.0842336.7271710.473483.159213.007288.9902285.073417.6631317.537137.8931443.3011697.126178.706364.051962.202
310308731f1b5bfb2026-10-265919json_view: view_mode enum instead of bool Editable, node_kind for node::kind (#5919)1381.6642428.5295978.7132333.4851746.571479.163211.036288.9572281.592416.9901308.904137.4861447.6651691.427175.453363.704963.371
3113094cdfa6d0f42026-10-265920json_view: no save() and load() on big-endian targets (#5920)1390.9012477.8416102.4742337.9251777.003485.382214.373290.9462303.147421.1781321.976139.9421446.7261704.816179.928367.825976.532
3123105a2819c9402026-10-265921json_view: one SIMD macro set with the library (#5921)1393.4092479.8416073.0112350.3361785.087485.658214.651292.0442304.448418.0261326.212138.9421468.9811719.505179.174368.704982.764
313311e5fe4ebdd22026-10-265922json_view: from_json() of the macros reads views directly (#5922)1384.6122467.0786056.3282337.3091742.751482.554213.389289.5432299.118417.5211309.673138.2371448.6281704.550177.925365.163984.351
3143129e67bfa1152026-10-265923json_view: the library's std conversions read views directly (#5923)1395.1032482.5176066.6042350.5381751.603482.504213.399290.1852306.188420.4061317.415138.7301444.3671708.720178.016369.111975.875
31531321ec9bd8012026-10-275915json_view: fewer allocations when parsing small documents (#5915)1388.2822469.1186066.4952340.3911744.901478.745214.934292.9702309.264422.8421323.237138.5411454.1511707.314178.058366.514958.110
3163142bb2feeef42026-10-275942Fix the red CI on develop (json_view pointer tokens, bson, from_json tests, Infer, IWYU) (#5942)1391.9812468.2666068.4952335.7071751.527482.908214.285291.2912300.453417.8761328.089138.0101454.9341701.845178.250367.182964.917
31731578a06871472026-10-275940Strong exception guarantee for operator[](json_pointer) (#5940)1379.4142467.4926109.1362335.3091723.090480.260216.197292.0752313.798415.4441314.530138.3141449.6291698.792177.628364.844965.314
318316candidatedevelop + open pull requests1383.1712465.8666049.7712336.3941725.095480.882214.967292.6212289.324418.0101320.853137.7931439.6151710.333176.356364.229962.166