Skip to content

Add an RFC 3986 absolute-path reference predicate to the uri module - #2746

Merged
jviotti merged 1 commit into
mainfrom
absolute-path-reference
Aug 18, 2026
Merged

Add an RFC 3986 absolute-path reference predicate to the uri module#2746
jviotti merged 1 commit into
mainfrom
absolute-path-reference

Conversation

@jviotti

@jviotti jviotti commented Aug 18, 2026

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Review in cubic

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@augmentcode

augmentcode Bot commented Aug 18, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR adds URI::is_absolute_path_reference to the URI module.

Changes:

  • Declares a new non-constructing predicate in the public URI API.
  • Implements strict RFC 3986 validation for absolute-path relative references.
  • Requires one leading slash and rejects network-path references beginning with `//`.
  • Validates path, query, and fragment character sets independently.
  • Checks percent encodings for exactly two hexadecimal digits.
  • Rejects invalid raw characters, controls, backslashes, and non-ASCII URI bytes.
  • Documents same-origin redirect applicability and dot-segment limitations.
  • Adds comprehensive unit coverage and registers the new test source with CMake.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. No suggestions at this time.

Comment augment review to trigger a new review at any time.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 4 files

Re-trigger cubic

@jviotti
jviotti merged commit 51a6ffa into main Aug 18, 2026
13 checks passed
@jviotti
jviotti deleted the absolute-path-reference branch August 18, 2026 17:43

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: 2289a73 Previous: a8399ba Ratio
JOSE_VerifySignature_RS256 22069.067885789795 ns/iter 22017.64241323269 ns/iter 1.00
JOSE_VerifySignature_ES512 574842.0016447509 ns/iter 575629.1480263236 ns/iter 1.00
GZIP_Compress_ISO_Language_Set_3_Locations 36174295.052630536 ns/iter 36533528.94736815 ns/iter 0.99
GZIP_Decompress_ISO_Language_Set_3_Locations 4177167.7751476145 ns/iter 4304707.801241997 ns/iter 0.97
GZIP_Compress_ISO_Language_Set_3_Schema 2017358.2997118784 ns/iter 2021054.152737699 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 381015.4640522914 ns/iter 382040.24085198244 ns/iter 1.00
HTML_Build_Table_100000 55132806.99999731 ns/iter 55445824.25000044 ns/iter 0.99
HTML_Render_Table_100000 1917458.9205479992 ns/iter 1824292.010335737 ns/iter 1.05
JSONLD_Catalog_Annotation_List_Populate 689117.7706693243 ns/iter 688832.5919370663 ns/iter 1.00
JSONLD_Catalog_Materialize 3550815.7960199937 ns/iter 3503178.13861396 ns/iter 1.01
JSONL_Parse_Large 9982490.257142931 ns/iter 10210581.173913706 ns/iter 0.98
JSONL_Parse_Large_GZIP 11352969.693548184 ns/iter 11639574.21666737 ns/iter 0.98
URITemplateRouter_Create 21418.71456447064 ns/iter 22061.19712105241 ns/iter 0.97
URITemplateRouter_Match 167.19895769607214 ns/iter 166.45523199842657 ns/iter 1.00
URITemplateRouter_Match_BasePath 185.78785346315786 ns/iter 185.9005246799031 ns/iter 1.00
URITemplateRouterView_Restore 8274.997631075246 ns/iter 8458.763157254216 ns/iter 0.98
URITemplateRouterView_Match 126.23374409440744 ns/iter 126.5013884270395 ns/iter 1.00
URITemplateRouterView_Match_BasePath 145.515201387288 ns/iter 144.75212990482908 ns/iter 1.01
URITemplateRouterView_Arguments 468.5246552630943 ns/iter 470.99862231553215 ns/iter 0.99
JSONPath_Descendant_Filter_Nested 1618.2893409241624 ns/iter 1619.5246427156917 ns/iter 1.00
Pointer_Object_Traverse 26.66133573626501 ns/iter 53.17318329999807 ns/iter 0.50
Pointer_Object_Try_Traverse 25.849408138063016 ns/iter 26.7684911077288 ns/iter 0.97
Pointer_Push_Back_Pointer_To_Weak_Pointer 131.95141869199276 ns/iter 134.57965460119152 ns/iter 0.98
Pointer_Walker_Schema_ISO_Language 1398848.0040484872 ns/iter 1397057.642570159 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/0 1194342.6473594496 ns/iter 1206911.419079934 ns/iter 0.99
Pointer_Maybe_Tracked_Deeply_Nested/1 1681454.522781678 ns/iter 1705211.9004856162 ns/iter 0.99
Pointer_Position_Tracker_Get_Deeply_Nested 597.6133757768539 ns/iter 591.0686619672886 ns/iter 1.01
JSON_Array_Of_Objects_Unique 399.74119855647143 ns/iter 401.6717129095868 ns/iter 1.00
JSON_Parse_1 5274.738035736914 ns/iter 5430.771904479071 ns/iter 0.97
JSON_Parse_Real 5756.12910277206 ns/iter 5816.950217455831 ns/iter 0.99
JSON_Parse_Decimal 10374.697613084434 ns/iter 10324.973758353117 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 3742060.288770133 ns/iter 3750754.935483827 ns/iter 1.00
JSON_Parse_Integer 3792.8400341290826 ns/iter 3782.1903138203043 ns/iter 1.00
JSON_Parse_String_NonSSO_Plain 3359.786407766894 ns/iter 3386.415941291742 ns/iter 0.99
JSON_Parse_String_SSO_Plain 3003.840468775598 ns/iter 2990.287516339572 ns/iter 1.00
JSON_Parse_String_Escape_Heavy 16690.208419747563 ns/iter 16735.803947399545 ns/iter 1.00
JSON_Parse_Object_Short_Keys 8492.24901238458 ns/iter 8522.68339533673 ns/iter 1.00
JSON_Parse_Object_Scalar_Properties 4324.03306387347 ns/iter 4316.81407992495 ns/iter 1.00
JSON_Parse_Object_Array_Properties 6478.61221324759 ns/iter 6387.683205302952 ns/iter 1.01
JSON_Parse_Object_Object_Properties 6588.433465851294 ns/iter 6527.6701832935205 ns/iter 1.01
JSON_Parse_Nested_Containers 38688.356673477065 ns/iter 38826.50512720985 ns/iter 1.00
JSON_From_String_Copy 8.553303184481466 ns/iter 8.855949368091231 ns/iter 0.97
JSON_From_String_Temporary 7.268552292484752 ns/iter 7.222275819087801 ns/iter 1.01
JSON_Number_To_Double 22.144196069815717 ns/iter 22.14106878864474 ns/iter 1.00
JSON_Object_At_Last_Key/8 5.612499689723636 ns/iter 5.6144972294736535 ns/iter 1.00
JSON_Object_At_Last_Key/32 21.802465737295126 ns/iter 21.54215561373965 ns/iter 1.01
JSON_Object_At_Last_Key/128 87.70589484878238 ns/iter 87.75270777449525 ns/iter 1.00
JSON_Object_At_Last_Key/512 392.2351182896333 ns/iter 392.8705211699255 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 62.23611618382943 ns/iter 54.913725164453425 ns/iter 1.13
JSON_Equality_Helm_Chart_Lock 148.32513585728555 ns/iter 148.06110385479107 ns/iter 1.00
JSON_Divisible_By_Decimal 263.87464569586444 ns/iter 265.8028206139688 ns/iter 0.99
JSON_String_Equal/10 5.413625586424027 ns/iter 5.414696464308002 ns/iter 1.00
JSON_String_Equal/100 6.041513478517437 ns/iter 6.039860093778174 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7494483296023131 ns/iter 0.7492467478798326 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.188823853300775 ns/iter 25.232829309627764 ns/iter 1.00
JSON_String_Fast_Hash/10 2.260918522559365 ns/iter 2.309775398651339 ns/iter 0.98
JSON_String_Fast_Hash/100 2.258921047463874 ns/iter 2.261573432320901 ns/iter 1.00
JSON_String_Key_Hash/10 1.2467748999549078 ns/iter 1.2482578546267682 ns/iter 1.00
JSON_String_Key_Hash/100 12.436768477289466 ns/iter 12.446684832777603 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.1154217121388257 ns/iter 3.1145226367625916 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.4327515201758656 ns/iter 3.4413099701042125 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.1159703472323628 ns/iter 3.1174482839110516 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 0.6225556159605159 ns/iter 0.6233830555183538 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.6231261038832236 ns/iter 0.6243060416429266 ns/iter 1.00
Regex_Period_Asterisk 0.6230620501917713 ns/iter 0.6229862031531762 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 0.6404661471394416 ns/iter 0.635112883473838 ns/iter 1.01
Regex_Period_Plus 0.6228727657912345 ns/iter 0.6234031154286374 ns/iter 1.00
Regex_Period 0.6227040833277905 ns/iter 0.6226174510669192 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 0.623104569498244 ns/iter 0.6236264062665741 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 0.6232331750286196 ns/iter 0.6232912526083533 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 0.6240684213465532 ns/iter 0.6230683741154158 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.6224479834731754 ns/iter 0.6229158987167744 ns/iter 1.00
Regex_Caret_X_Hyphen 4.054017585134289 ns/iter 4.052843357907132 ns/iter 1.00
Regex_Period_Md_Dollar 28.206487660286257 ns/iter 30.89072897288427 ns/iter 0.91
Regex_Caret_Slash_Period_Asterisk 4.360700771827526 ns/iter 4.361542271581804 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.2498769198348454 ns/iter 1.246497987662994 ns/iter 1.00
Regex_Nested_Backtrack 37.46982593798459 ns/iter 38.555029141866626 ns/iter 0.97

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Details
Benchmark suite Current: 2289a73 Previous: a8399ba Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.294518210363742 ns/iter 1.7840719698629905 ns/iter 1.29
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1346905697424363 ns/iter 1.8243350973603378 ns/iter 1.17
Regex_Period_Asterisk 1.841394879525179 ns/iter 1.9137374999292411 ns/iter 0.96
Regex_Group_Period_Asterisk_Group 2.4596661741330346 ns/iter 2.1947806701919577 ns/iter 1.12
Regex_Period_Plus 2.292971337512094 ns/iter 2.2220813014063343 ns/iter 1.03
Regex_Period 2.410894219404005 ns/iter 2.1819802697606687 ns/iter 1.10
Regex_Caret_Period_Plus_Dollar 2.922846678787768 ns/iter 2.252963693856955 ns/iter 1.30
Regex_Caret_Group_Period_Plus_Group_Dollar 2.5898065884715527 ns/iter 2.1114220312619625 ns/iter 1.23
Regex_Caret_Period_Asterisk_Dollar 2.102259513630258 ns/iter 1.77459095597672 ns/iter 1.18
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.720015994977443 ns/iter 1.8100523682213225 ns/iter 0.95
Regex_Caret_X_Hyphen 6.389309385901499 ns/iter 6.28938552830017 ns/iter 1.02
Regex_Period_Md_Dollar 22.146791449041885 ns/iter 17.767732652050363 ns/iter 1.25
Regex_Caret_Slash_Period_Asterisk 5.269005830000424 ns/iter 5.397880839999516 ns/iter 0.98
Regex_Caret_Period_Range_Dollar 2.2269080180534324 ns/iter 2.05788227621685 ns/iter 1.08
Regex_Nested_Backtrack 30.00486401708209 ns/iter 25.967739964946837 ns/iter 1.16
JSON_Array_Of_Objects_Unique 376.624474239614 ns/iter 357.51477998443204 ns/iter 1.05
JSON_Parse_1 3164.366428728077 ns/iter 2900.202604891261 ns/iter 1.09
JSON_Parse_Real 5358.110431855995 ns/iter 4996.122152131434 ns/iter 1.07
JSON_Parse_Decimal 5733.72634975062 ns/iter 5100.12136805647 ns/iter 1.12
JSON_Parse_Schema_ISO_Language 2869876.1869918597 ns/iter 2033375.1196580527 ns/iter 1.41
JSON_Parse_Integer 3449.472775807805 ns/iter 2976.2136367699754 ns/iter 1.16
JSON_Parse_String_NonSSO_Plain 3047.0847460650166 ns/iter 3751.5598583332176 ns/iter 0.81
JSON_Parse_String_SSO_Plain 1741.6881048001892 ns/iter 1870.6267007615809 ns/iter 0.93
JSON_Parse_String_Escape_Heavy 17864.607048333124 ns/iter 17296.343191989774 ns/iter 1.03
JSON_Parse_Object_Short_Keys 5887.975589019414 ns/iter 5767.603663511828 ns/iter 1.02
JSON_Parse_Object_Scalar_Properties 2801.03894750551 ns/iter 2909.9336692434345 ns/iter 0.96
JSON_Parse_Object_Array_Properties 3329.6101825688556 ns/iter 3547.73060335279 ns/iter 0.94
JSON_Parse_Object_Object_Properties 3586.8518525820955 ns/iter 3488.9442258180607 ns/iter 1.03
JSON_Parse_Nested_Containers 27228.6748751718 ns/iter 26503.504373607608 ns/iter 1.03
JSON_From_String_Copy 10.929509165834313 ns/iter 11.303570530561865 ns/iter 0.97
JSON_From_String_Temporary 6.521814870420313 ns/iter 6.987156457627257 ns/iter 0.93
JSON_Number_To_Double 40.148806950957926 ns/iter 35.27079943299298 ns/iter 1.14
JSON_Object_At_Last_Key/8 4.104144371923775 ns/iter 4.001336125680748 ns/iter 1.03
JSON_Object_At_Last_Key/32 12.610155150216617 ns/iter 12.996858475948837 ns/iter 0.97
JSON_Object_At_Last_Key/128 59.21796625573426 ns/iter 54.815016650484694 ns/iter 1.08
JSON_Object_At_Last_Key/512 201.75275911429895 ns/iter 216.1656904752968 ns/iter 0.93
JSON_Fast_Hash_Helm_Chart_Lock 64.24372276436985 ns/iter 68.66388289467864 ns/iter 0.94
JSON_Equality_Helm_Chart_Lock 170.98467539704285 ns/iter 163.84831603175942 ns/iter 1.04
JSON_Divisible_By_Decimal 183.36475084582915 ns/iter 191.60120837106646 ns/iter 0.96
JSON_String_Equal/10 7.2200058423091775 ns/iter 7.752188794952335 ns/iter 0.93
JSON_String_Equal/100 7.143531085862939 ns/iter 7.718535782846842 ns/iter 0.93
JSON_String_Equal_Small_By_Perfect_Hash/10 0.3493963287169332 ns/iter 0.3394433970969177 ns/iter 1.03
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.5659500782196 ns/iter 3.4149942477335093 ns/iter 1.34
JSON_String_Fast_Hash/10 3.2222609976628926 ns/iter 2.3294297335782215 ns/iter 1.38
JSON_String_Fast_Hash/100 2.6135093911510783 ns/iter 2.0543741810899867 ns/iter 1.27
JSON_String_Key_Hash/10 1.8624294079451211 ns/iter 1.6765412048296173 ns/iter 1.11
JSON_String_Key_Hash/100 2.305660021093961 ns/iter 2.3310419523064034 ns/iter 0.99
JSON_Object_Defines_Miss_Same_Length 2.8183031126864226 ns/iter 2.6555877815037254 ns/iter 1.06
JSON_Object_Defines_Miss_Too_Small 2.8916810680951257 ns/iter 3.643188103572969 ns/iter 0.79
JSON_Object_Defines_Miss_Too_Large 2.969731730114743 ns/iter 2.621621389464292 ns/iter 1.13
Pointer_Object_Traverse 22.024595341077045 ns/iter 20.468777865260712 ns/iter 1.08
Pointer_Object_Try_Traverse 22.899441408850596 ns/iter 22.288057067385385 ns/iter 1.03
Pointer_Push_Back_Pointer_To_Weak_Pointer 146.13490215903397 ns/iter 147.8644564933854 ns/iter 0.99
Pointer_Walker_Schema_ISO_Language 1276542.8082193558 ns/iter 1184274.2390158547 ns/iter 1.08
Pointer_Maybe_Tracked_Deeply_Nested/0 894701.9632183458 ns/iter 793509.343148332 ns/iter 1.13
Pointer_Maybe_Tracked_Deeply_Nested/1 1313743.3304646367 ns/iter 1024686.8198582372 ns/iter 1.28
Pointer_Position_Tracker_Get_Deeply_Nested 402.24239586501784 ns/iter 328.6435686008165 ns/iter 1.22
JSONPath_Descendant_Filter_Nested 1410.246139801254 ns/iter 1282.7230659362965 ns/iter 1.10
URITemplateRouter_Create 20861.775015521398 ns/iter 19826.38220384752 ns/iter 1.05
URITemplateRouter_Match 194.84997545414902 ns/iter 189.77860049672526 ns/iter 1.03
URITemplateRouter_Match_BasePath 252.05361066313674 ns/iter 197.90159698190018 ns/iter 1.27
URITemplateRouterView_Restore 11824.587227411766 ns/iter 11037.547730165747 ns/iter 1.07
URITemplateRouterView_Match 148.1607447212199 ns/iter 155.1852606806561 ns/iter 0.95
URITemplateRouterView_Match_BasePath 171.16094935669568 ns/iter 223.7217821874421 ns/iter 0.77
URITemplateRouterView_Arguments 604.7650873288031 ns/iter 566.3814847136473 ns/iter 1.07
JSONL_Parse_Large 6682546.428570882 ns/iter 6442143.181818044 ns/iter 1.04
JSONL_Parse_Large_GZIP 8004332.807690144 ns/iter 7388504.446601129 ns/iter 1.08
JSONLD_Catalog_Annotation_List_Populate 553877.0115274389 ns/iter 474027.2462380049 ns/iter 1.17
JSONLD_Catalog_Materialize 2489169.2804427575 ns/iter 2466777.1648351755 ns/iter 1.01
HTML_Build_Table_100000 40974425.8888875 ns/iter 34765302.63157871 ns/iter 1.18
HTML_Render_Table_100000 1676612.4161072702 ns/iter 1609487.8084210283 ns/iter 1.04
GZIP_Compress_ISO_Language_Set_3_Locations 29111590.00000225 ns/iter 24594327.586206764 ns/iter 1.18
GZIP_Decompress_ISO_Language_Set_3_Locations 3840350.98870099 ns/iter 3146090.9598212284 ns/iter 1.22
GZIP_Compress_ISO_Language_Set_3_Schema 2030984.198776929 ns/iter 1403257.7499999662 ns/iter 1.45
GZIP_Decompress_ISO_Language_Set_3_Schema 337875.4647744761 ns/iter 265713.95538629504 ns/iter 1.27
JOSE_VerifySignature_RS256 28313.734138015057 ns/iter 19951.302140794072 ns/iter 1.42
JOSE_VerifySignature_ES512 1272457.2940199676 ns/iter 920496.8029099525 ns/iter 1.38

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: 2289a73 Previous: a8399ba Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.18846504738159 ns/iter 2.189802092085866 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.1783555186115584 ns/iter 2.1817300374269237 ns/iter 1.00
Regex_Period_Asterisk 2.1784095688191174 ns/iter 2.234194460366256 ns/iter 0.98
Regex_Group_Period_Asterisk_Group 2.1782404214523483 ns/iter 2.179624647250308 ns/iter 1.00
Regex_Period_Plus 2.806142436097835 ns/iter 2.803603466602032 ns/iter 1.00
Regex_Period 2.8014200618667697 ns/iter 2.8048358407682734 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 2.800536744182072 ns/iter 2.803876940523602 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 2.8009429039051055 ns/iter 2.8067226793207545 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 3.4248928455716836 ns/iter 3.4238867716241743 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.4235550040389673 ns/iter 3.423173704692003 ns/iter 1.00
Regex_Caret_X_Hyphen 6.5449843033551245 ns/iter 6.664753162186476 ns/iter 0.98
Regex_Period_Md_Dollar 28.601365085124026 ns/iter 28.630842375411063 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 5.917096562628294 ns/iter 5.917945916249367 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 4.3579413390159205 ns/iter 4.3605447791014464 ns/iter 1.00
Regex_Nested_Backtrack 38.97485079771871 ns/iter 38.933145866694716 ns/iter 1.00
JSON_Array_Of_Objects_Unique 432.24385860738107 ns/iter 430.9842603804967 ns/iter 1.00
JSON_Parse_1 4670.773292837259 ns/iter 4771.620939854118 ns/iter 0.98
JSON_Parse_Real 5330.739569175194 ns/iter 5165.645894681173 ns/iter 1.03
JSON_Parse_Decimal 7756.2801072053735 ns/iter 7763.683833159165 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 3376005.6811593897 ns/iter 3345552.1787441354 ns/iter 1.01
JSON_Parse_Integer 3716.2806000214177 ns/iter 3719.610653162697 ns/iter 1.00
JSON_Parse_String_NonSSO_Plain 3039.748467896193 ns/iter 3060.347122537781 ns/iter 0.99
JSON_Parse_String_SSO_Plain 2723.3254501610822 ns/iter 2745.340000156952 ns/iter 0.99
JSON_Parse_String_Escape_Heavy 12569.26627681664 ns/iter 12389.81074023318 ns/iter 1.01
JSON_Parse_Object_Short_Keys 8298.653026727627 ns/iter 8488.697428266254 ns/iter 0.98
JSON_Parse_Object_Scalar_Properties 4298.999618599869 ns/iter 4338.852366875256 ns/iter 0.99
JSON_Parse_Object_Array_Properties 5363.210203428211 ns/iter 5735.932942442642 ns/iter 0.94
JSON_Parse_Object_Object_Properties 5389.127731533259 ns/iter 5768.117109545376 ns/iter 0.93
JSON_Parse_Nested_Containers 36086.4052763938 ns/iter 36234.13371823632 ns/iter 1.00
JSON_From_String_Copy 11.979066143318708 ns/iter 12.260709342707237 ns/iter 0.98
JSON_From_String_Temporary 10.174811940999762 ns/iter 10.427240306968322 ns/iter 0.98
JSON_Number_To_Double 23.166180472939125 ns/iter 23.132404444166916 ns/iter 1.00
JSON_Object_At_Last_Key/8 5.858493720019009 ns/iter 5.932551894079065 ns/iter 0.99
JSON_Object_At_Last_Key/32 21.55513187563207 ns/iter 21.82476772783106 ns/iter 0.99
JSON_Object_At_Last_Key/128 87.85467502934627 ns/iter 87.91811822630669 ns/iter 1.00
JSON_Object_At_Last_Key/512 397.14304865567465 ns/iter 396.66264195405887 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 59.91470392465917 ns/iter 59.81590667707228 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 176.94717870060495 ns/iter 190.5316771419093 ns/iter 0.93
JSON_Divisible_By_Decimal 242.27484281300653 ns/iter 240.5196254916572 ns/iter 1.01
JSON_String_Equal/10 5.920263681289548 ns/iter 5.928735062602291 ns/iter 1.00
JSON_String_Equal/100 6.538729464701567 ns/iter 6.54895610387641 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9364378103091792 ns/iter 0.9396664515306652 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.618540226923937 ns/iter 14.62812193498653 ns/iter 1.00
JSON_String_Fast_Hash/10 2.490663930547132 ns/iter 2.492471512137259 ns/iter 1.00
JSON_String_Fast_Hash/100 2.4909811753583426 ns/iter 2.4945520530558225 ns/iter 1.00
JSON_String_Key_Hash/10 2.8168163102150974 ns/iter 2.840234491610686 ns/iter 0.99
JSON_String_Key_Hash/100 9.024915804124001 ns/iter 9.026553179939507 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.757458294696572 ns/iter 2.6525076819443694 ns/iter 1.04
JSON_Object_Defines_Miss_Too_Small 2.6537271480613738 ns/iter 2.6467669622543792 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.0130973107571415 ns/iter 3.0542852813321204 ns/iter 0.99
Pointer_Object_Traverse 29.412132568569355 ns/iter 29.406298182027683 ns/iter 1.00
Pointer_Object_Try_Traverse 30.88204807603971 ns/iter 31.090059968122567 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 202.83706089423177 ns/iter 201.09003189017315 ns/iter 1.01
Pointer_Walker_Schema_ISO_Language 1533827.4362417073 ns/iter 1580132.89485471 ns/iter 0.97
Pointer_Maybe_Tracked_Deeply_Nested/0 1238061.5891892754 ns/iter 1244245.319148928 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 1588081.5348837555 ns/iter 1632333.6425231847 ns/iter 0.97
Pointer_Position_Tracker_Get_Deeply_Nested 631.1799150069801 ns/iter 633.0365086017517 ns/iter 1.00
JSONPath_Descendant_Filter_Nested 1526.0331211376456 ns/iter 1515.752011706102 ns/iter 1.01
URITemplateRouter_Create 23348.711837797917 ns/iter 23606.79939779233 ns/iter 0.99
URITemplateRouter_Match 178.80847129488794 ns/iter 175.3483990482627 ns/iter 1.02
URITemplateRouter_Match_BasePath 206.964825192379 ns/iter 201.102604441182 ns/iter 1.03
URITemplateRouterView_Restore 8408.857933558358 ns/iter 8515.303286115593 ns/iter 0.99
URITemplateRouterView_Match 158.5954108235418 ns/iter 158.94576509401864 ns/iter 1.00
URITemplateRouterView_Match_BasePath 185.64113536093663 ns/iter 183.8600341837141 ns/iter 1.01
URITemplateRouterView_Arguments 444.5179667576409 ns/iter 446.8532474037436 ns/iter 0.99
JSONL_Parse_Large 9253507.546667 ns/iter 9401279.120000556 ns/iter 0.98
JSONL_Parse_Large_GZIP 10771596.676923204 ns/iter 10919562.687501382 ns/iter 0.99
JSONLD_Catalog_Annotation_List_Populate 608243.1835663557 ns/iter 603022.9388457432 ns/iter 1.01
JSONLD_Catalog_Materialize 3491992.0200002254 ns/iter 3661735.335078628 ns/iter 0.95
HTML_Build_Table_100000 57446289.72726414 ns/iter 58440718.1818175 ns/iter 0.98
HTML_Render_Table_100000 1805238.090206054 ns/iter 2160353.8023600243 ns/iter 0.84
GZIP_Compress_ISO_Language_Set_3_Locations 33336128.809521273 ns/iter 33659508.76190297 ns/iter 0.99
GZIP_Decompress_ISO_Language_Set_3_Locations 4180841.733727902 ns/iter 4256997.372670451 ns/iter 0.98
GZIP_Compress_ISO_Language_Set_3_Schema 1884976.4716978555 ns/iter 1891699.643051615 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 356096.13455656666 ns/iter 357050.4948875089 ns/iter 1.00
JOSE_VerifySignature_RS256 58120.706619116056 ns/iter 58098.888235299084 ns/iter 1.00
JOSE_VerifySignature_ES512 2361468.454545493 ns/iter 2369844.68581087 ns/iter 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Details
Benchmark suite Current: 2289a73 Previous: a8399ba Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.268434000001889 ns/iter 5.071911607144233 ns/iter 1.04
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.202968750000179 ns/iter 5.03585300000168 ns/iter 1.03
Regex_Period_Asterisk 5.087879000000157 ns/iter 5.074352000001454 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 5.091437500001104 ns/iter 5.061253571428535 ns/iter 1.01
Regex_Period_Plus 5.118746987748399 ns/iter 5.059287499999447 ns/iter 1.01
Regex_Period 5.379190178570883 ns/iter 5.094398000001092 ns/iter 1.06
Regex_Caret_Period_Plus_Dollar 5.079482142856965 ns/iter 5.028821428571258 ns/iter 1.01
Regex_Caret_Group_Period_Plus_Group_Dollar 5.028814999998303 ns/iter 5.041939000000184 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 5.109687499999691 ns/iter 5.017224000000624 ns/iter 1.02
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.113612000000103 ns/iter 5.084385000000111 ns/iter 1.01
Regex_Caret_X_Hyphen 8.758538800183443 ns/iter 8.181825892855496 ns/iter 1.07
Regex_Period_Md_Dollar 46.80283928570767 ns/iter 45.11333749999835 ns/iter 1.04
Regex_Caret_Slash_Period_Asterisk 8.006087053572688 ns/iter 7.978927455357824 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 5.772699107144571 ns/iter 5.712823999999729 ns/iter 1.01
Regex_Nested_Backtrack 58.80494642856401 ns/iter 60.07491071429172 ns/iter 0.98
JSON_Array_Of_Objects_Unique 630.1293750001134 ns/iter 630.1394642857109 ns/iter 1.00
JSON_Parse_1 9100.74553571505 ns/iter 8947.794875915313 ns/iter 1.02
JSON_Parse_Real 16385.921491423418 ns/iter 16266.022321426632 ns/iter 1.01
JSON_Parse_Decimal 11989.276785714406 ns/iter 11813.087499997924 ns/iter 1.01
JSON_Parse_Schema_ISO_Language 7729059.999999461 ns/iter 7393613.333334139 ns/iter 1.05
JSON_Parse_Integer 6267.203571427769 ns/iter 6425.4169642846855 ns/iter 0.98
JSON_Parse_String_NonSSO_Plain 8792.436383929315 ns/iter 8304.759800178716 ns/iter 1.06
JSON_Parse_String_SSO_Plain 4223.432458156949 ns/iter 4155.595793579554 ns/iter 1.02
JSON_Parse_String_Escape_Heavy 22180.7312499962 ns/iter 21634.559374994922 ns/iter 1.03
JSON_Parse_Object_Short_Keys 13390.710755756865 ns/iter 13344.36096267293 ns/iter 1.00
JSON_Parse_Object_Scalar_Properties 6821.247321428002 ns/iter 6841.717857142271 ns/iter 1.00
JSON_Parse_Object_Array_Properties 11547.203571426833 ns/iter 12609.778571430752 ns/iter 0.92
JSON_Parse_Object_Object_Properties 11808.276562501162 ns/iter 11756.8499999976 ns/iter 1.00
JSON_Parse_Nested_Containers 81352.26562497877 ns/iter 80414.77678570886 ns/iter 1.01
JSON_From_String_Copy 65.95813392857103 ns/iter 64.28438392857417 ns/iter 1.03
JSON_From_String_Temporary 58.680821428578966 ns/iter 58.88456249999357 ns/iter 1.00
JSON_Number_To_Double 120.54932142855738 ns/iter 120.45867857141599 ns/iter 1.00
JSON_Object_At_Last_Key/8 7.740228794642486 ns/iter 7.5506930803572105 ns/iter 1.03
JSON_Object_At_Last_Key/32 23.6883278606207 ns/iter 23.359121391081565 ns/iter 1.01
JSON_Object_At_Last_Key/128 92.7921540178543 ns/iter 94.23571454302956 ns/iter 0.98
JSON_Object_At_Last_Key/512 425.955200484075 ns/iter 445.4949029925225 ns/iter 0.96
JSON_Fast_Hash_Helm_Chart_Lock 107.59376562500479 ns/iter 108.1385000000117 ns/iter 0.99
JSON_Equality_Helm_Chart_Lock 212.46096372943109 ns/iter 214.16767793897193 ns/iter 0.99
JSON_Divisible_By_Decimal 309.368392857071 ns/iter 307.3483035714324 ns/iter 1.01
JSON_String_Equal/10 10.40863593749819 ns/iter 10.467551562499011 ns/iter 0.99
JSON_String_Equal/100 11.83346607142864 ns/iter 11.718310937499865 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 2.5876949999997123 ns/iter 2.5461596428572517 ns/iter 1.02
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 15.21047604816581 ns/iter 14.33689547171181 ns/iter 1.06
JSON_String_Fast_Hash/10 6.671842633928345 ns/iter 6.650714285714494 ns/iter 1.00
JSON_String_Fast_Hash/100 6.736783928571656 ns/iter 6.749922321428617 ns/iter 1.00
JSON_String_Key_Hash/10 5.470380000001569 ns/iter 5.406501785714113 ns/iter 1.01
JSON_String_Key_Hash/100 12.016548214282757 ns/iter 11.95930468750106 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 4.747011318022922 ns/iter 5.023305357143824 ns/iter 0.94
JSON_Object_Defines_Miss_Too_Small 4.838013392858086 ns/iter 4.830650233996498 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 4.774266407314821 ns/iter 4.718821215889942 ns/iter 1.01
Pointer_Object_Traverse 67.6506964285701 ns/iter 68.53380357142669 ns/iter 0.99
Pointer_Object_Try_Traverse 72.31891741071702 ns/iter 71.66055803570057 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 175.37721040472772 ns/iter 182.17366398484683 ns/iter 0.96
Pointer_Walker_Schema_ISO_Language 10763134.37500076 ns/iter 11887895.31250123 ns/iter 0.91
Pointer_Maybe_Tracked_Deeply_Nested/0 2447387.951807071 ns/iter 2424579.545454504 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/1 3752911.7647059117 ns/iter 3695054.7486039232 ns/iter 1.02
Pointer_Position_Tracker_Get_Deeply_Nested 566.6352678570519 ns/iter 565.6735491072088 ns/iter 1.00
JSONPath_Descendant_Filter_Nested 2440.8592857136164 ns/iter 2359.4913398539384 ns/iter 1.03
URITemplateRouter_Create 40951.523417091434 ns/iter 41698.653589473004 ns/iter 0.98
URITemplateRouter_Match 238.82441530978565 ns/iter 236.37462763675524 ns/iter 1.01
URITemplateRouter_Match_BasePath 267.7946369550583 ns/iter 268.7380357143151 ns/iter 1.00
URITemplateRouterView_Restore 34065.66352599547 ns/iter 33339.938124028195 ns/iter 1.02
URITemplateRouterView_Match 182.41263235826753 ns/iter 184.77173078317205 ns/iter 0.99
URITemplateRouterView_Match_BasePath 209.94299999998134 ns/iter 209.3948790448567 ns/iter 1.00
URITemplateRouterView_Arguments 543.420624999921 ns/iter 543.6374107142277 ns/iter 1.00
JSONL_Parse_Large 32507533.33333835 ns/iter 32676154.545449458 ns/iter 0.99
JSONL_Parse_Large_GZIP 33956980.9523796 ns/iter 33752036.36363205 ns/iter 1.01
JSONLD_Catalog_Annotation_List_Populate 3159688.392857772 ns/iter 3194700.938967773 ns/iter 0.99
JSONLD_Catalog_Materialize 7981015.5555555355 ns/iter 7995769.333332039 ns/iter 1.00
HTML_Build_Table_100000 94353657.14284672 ns/iter 92458645.4545368 ns/iter 1.02
HTML_Render_Table_100000 7667221.111109433 ns/iter 7720364.444442869 ns/iter 0.99
GZIP_Compress_ISO_Language_Set_3_Locations 35650505.26316028 ns/iter 35245109.52380903 ns/iter 1.01
GZIP_Decompress_ISO_Language_Set_3_Locations 9944554.666665984 ns/iter 10008871.99999852 ns/iter 0.99
GZIP_Compress_ISO_Language_Set_3_Schema 2059529.0624996212 ns/iter 2085394.7826082362 ns/iter 0.99
GZIP_Decompress_ISO_Language_Set_3_Schema 643441.3392856949 ns/iter 638627.8571428404 ns/iter 1.01
JOSE_VerifySignature_RS256 21294.118749999314 ns/iter 21381.36207997761 ns/iter 1.00
JOSE_VerifySignature_ES512 1390789.642856914 ns/iter 1374139.8214287008 ns/iter 1.01

This comment was automatically generated by workflow using github-action-benchmark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant