Skip to content

Implement idn-hostname RFC 5890 validation#2409

Merged
jviotti merged 1 commit into
mainfrom
idn-hostname
May 25, 2026
Merged

Implement idn-hostname RFC 5890 validation#2409
jviotti merged 1 commit into
mainfrom
idn-hostname

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented May 25, 2026

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

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

augmentcode Bot commented May 25, 2026

🤖 Augment PR Summary

Summary: This PR adds support for validating the JSON Schema idn-hostname format by introducing an IDN-capable hostname validator aligned with RFC 5890’s U-label concept (at the UTF-8 byte/label-grammar level).

Changes:

  • Refactors hostname validation into a shared implementation that can operate in ASCII-only mode or in “allow UTF-8 U-label bytes” mode.
  • Adds a new public API sourcemeta::core::is_idn_hostname() alongside the existing is_hostname().
  • Moves/centralizes IDN domain checks previously living in email helpers into the DNS module.
  • Updates IDN email validation to use is_idn_hostname() for the domain portion.
  • Updates CMake wiring so the DNS component links against the Unicode utilities component.
  • Adds a dedicated idn_hostname_test.cc suite and expands existing hostname tests to cover both validators.

Technical Notes: The IDN hostname check is explicitly documented as a best-effort lexical validation (valid UTF-8 sequences + label structure/length rules) rather than full IDNA2008 processing (normalization/Bidi/ContextJ/O/Punycode round-trip).

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

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.

Copy link
Copy Markdown

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

Choose a reason for hiding this comment

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

No issues found across 9 files

Re-trigger cubic

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

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: b85b150 Previous: e832723 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.1914428305642708 ns/iter 2.1996567728995133 ns/iter 0.54
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.3792817128209471 ns/iter 2.2077294717371823 ns/iter 0.62
Regex_Period_Asterisk 1.1648161830409205 ns/iter 2.18010535676737 ns/iter 0.53
Regex_Group_Period_Asterisk_Group 1.4177123140255494 ns/iter 2.1937180536919203 ns/iter 0.65
Regex_Period_Plus 1.2143260757953527 ns/iter 2.8070780573028404 ns/iter 0.43
Regex_Period 1.5250713887518197 ns/iter 3.114797648871015 ns/iter 0.49
Regex_Caret_Period_Plus_Dollar 1.23598286751836 ns/iter 2.8063296796131874 ns/iter 0.44
Regex_Caret_Group_Period_Plus_Group_Dollar 1.4605278369643384 ns/iter 3.112969479282914 ns/iter 0.47
Regex_Caret_Period_Asterisk_Dollar 1.1975064248975982 ns/iter 3.114146816637613 ns/iter 0.38
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.414783197959901 ns/iter 3.422576970000296 ns/iter 0.41
Regex_Caret_X_Hyphen 2.3589336779671317 ns/iter 6.544977561330682 ns/iter 0.36
Regex_Period_Md_Dollar 14.235820321945 ns/iter 27.416826738377754 ns/iter 0.52
Regex_Caret_Slash_Period_Asterisk 2.3498347041373924 ns/iter 6.850976699466928 ns/iter 0.34
Regex_Caret_Period_Range_Dollar 1.4041166159769536 ns/iter 3.7361464136938953 ns/iter 0.38
Regex_Nested_Backtrack 19.125630128728663 ns/iter 36.905777877543265 ns/iter 0.52
JSON_Array_Of_Objects_Unique 237.1694404164857 ns/iter 386.73397222830675 ns/iter 0.61
JSON_Parse_1 2747.949076042122 ns/iter 5836.440772591699 ns/iter 0.47
JSON_Parse_Real 5320.534786795607 ns/iter 10562.348369334371 ns/iter 0.50
JSON_Parse_Decimal 5839.365485942539 ns/iter 10886.148669772096 ns/iter 0.54
JSON_Parse_Schema_ISO_Language 1816877.875324741 ns/iter 3566214.255102131 ns/iter 0.51
JSON_Fast_Hash_Helm_Chart_Lock 34.11665581742569 ns/iter 53.558191364273405 ns/iter 0.64
JSON_Equality_Helm_Chart_Lock 90.86801180755988 ns/iter 160.21464315907295 ns/iter 0.57
JSON_Divisible_By_Decimal 137.78389016396133 ns/iter 247.3694544705118 ns/iter 0.56
JSON_String_Equal/10 2.8113477906732194 ns/iter 7.16432634801008 ns/iter 0.39
JSON_String_Equal/100 3.2511288662186737 ns/iter 6.858073821179724 ns/iter 0.47
JSON_String_Equal_Small_By_Perfect_Hash/10 0.48608104143772307 ns/iter 0.9362119009422682 ns/iter 0.52
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 7.152380609317682 ns/iter 10.274975048031724 ns/iter 0.70
JSON_String_Fast_Hash/10 1.3773611456941084 ns/iter 2.4925839722744243 ns/iter 0.55
JSON_String_Fast_Hash/100 1.3872997510154195 ns/iter 2.494952999665258 ns/iter 0.56
JSON_String_Key_Hash/10 1.1449994110443524 ns/iter 2.1808782778303364 ns/iter 0.53
JSON_String_Key_Hash/100 3.763390087534023 ns/iter 6.540627252411709 ns/iter 0.58
JSON_Object_Defines_Miss_Same_Length 1.767474040348155 ns/iter 3.739178778188629 ns/iter 0.47
JSON_Object_Defines_Miss_Too_Small 1.8432348181673832 ns/iter 3.741718881691402 ns/iter 0.49
JSON_Object_Defines_Miss_Too_Large 1.7604784159080709 ns/iter 3.742828795753063 ns/iter 0.47
Pointer_Object_Traverse 14.061963409470586 ns/iter 24.320590353654172 ns/iter 0.58
Pointer_Object_Try_Traverse 14.94649490650147 ns/iter 26.02193851475689 ns/iter 0.57
Pointer_Push_Back_Pointer_To_Weak_Pointer 83.08652985683244 ns/iter 157.0903712712709 ns/iter 0.53
Pointer_Walker_Schema_ISO_Language 1468772.3655031002 ns/iter 3000939.5517241983 ns/iter 0.49
Pointer_Maybe_Tracked_Deeply_Nested/0 634784.1923775006 ns/iter 1440930.2282827944 ns/iter 0.44
Pointer_Maybe_Tracked_Deeply_Nested/1 918185.0241545355 ns/iter 1900062.3196722285 ns/iter 0.48
Pointer_Position_Tracker_Get_Deeply_Nested 463.39603869552815 ns/iter 644.4319524626187 ns/iter 0.72
URITemplateRouter_Create 16992.22847033918 ns/iter 31566.01145640707 ns/iter 0.54
URITemplateRouter_Match 81.74306997004426 ns/iter 176.1295524383524 ns/iter 0.46
URITemplateRouter_Match_BasePath 90.9840845214373 ns/iter 203.80128089736536 ns/iter 0.45
URITemplateRouterView_Restore 6540.7546962259075 ns/iter 7652.612550336167 ns/iter 0.85
URITemplateRouterView_Match 74.36515595857861 ns/iter 144.11980573589253 ns/iter 0.52
URITemplateRouterView_Match_BasePath 87.69316252763915 ns/iter 162.88782772310375 ns/iter 0.54
URITemplateRouterView_Arguments 299.19646166952674 ns/iter 434.82304434756725 ns/iter 0.69
JSONL_Parse_Large 6049614.894736845 ns/iter 10758670.507692175 ns/iter 0.56
JSONL_Parse_Large_GZIP 6693002.2499997225 ns/iter 11962355.56896509 ns/iter 0.56
HTML_Build_Table_100000 52723687.15384783 ns/iter 62957515.81818236 ns/iter 0.84
HTML_Render_Table_100000 4155113.357575663 ns/iter 5257504.618320915 ns/iter 0.79
GZIP_Compress_ISO_Language_Set_3_Locations 18673349.763157662 ns/iter 33918662.00000019 ns/iter 0.55
GZIP_Decompress_ISO_Language_Set_3_Locations 2481561.8723404934 ns/iter 4729387.637583893 ns/iter 0.52
GZIP_Compress_ISO_Language_Set_3_Schema 1254593.7377048738 ns/iter 1878856.629032142 ns/iter 0.67
GZIP_Decompress_ISO_Language_Set_3_Schema 209767.11318407572 ns/iter 377606.18736501486 ns/iter 0.56

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

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

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: b85b150 Previous: b1ba863 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.060668870361626 ns/iter 1.9498575132154228 ns/iter 1.06
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.786144226689541 ns/iter 1.5716975251422667 ns/iter 1.14
Regex_Period_Asterisk 1.7088447998095673 ns/iter 1.5677963767250498 ns/iter 1.09
Regex_Group_Period_Asterisk_Group 1.7082927392150502 ns/iter 1.5727920776184068 ns/iter 1.09
Regex_Period_Plus 2.0374219669976887 ns/iter 1.8913269906619714 ns/iter 1.08
Regex_Period 2.0643453604671826 ns/iter 1.9886426656393814 ns/iter 1.04
Regex_Caret_Period_Plus_Dollar 2.050588671143725 ns/iter 1.8804430502677172 ns/iter 1.09
Regex_Caret_Group_Period_Plus_Group_Dollar 2.0342911946360345 ns/iter 1.8837379136328194 ns/iter 1.08
Regex_Caret_Period_Asterisk_Dollar 1.7413575729662103 ns/iter 1.5742698628071614 ns/iter 1.11
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.6826541446569054 ns/iter 1.5679679774002133 ns/iter 1.07
Regex_Caret_X_Hyphen 6.083229846447491 ns/iter 5.648259347672337 ns/iter 1.08
Regex_Period_Md_Dollar 16.24018147649004 ns/iter 15.123385113023758 ns/iter 1.07
Regex_Caret_Slash_Period_Asterisk 8.038488015567467 ns/iter 7.772013135707572 ns/iter 1.03
Regex_Caret_Period_Range_Dollar 1.7038710326895687 ns/iter 1.7184340224580297 ns/iter 0.99
Regex_Nested_Backtrack 24.66580436823019 ns/iter 22.752033471974023 ns/iter 1.08
JSON_Array_Of_Objects_Unique 431.83385113384713 ns/iter 394.6299077010257 ns/iter 1.09
JSON_Parse_1 3916.4803855877162 ns/iter 3754.5985203158434 ns/iter 1.04
JSON_Parse_Real 6494.454128605847 ns/iter 6187.403970258284 ns/iter 1.05
JSON_Parse_Decimal 8141.159978395347 ns/iter 7790.664281801778 ns/iter 1.04
JSON_Parse_Schema_ISO_Language 2859586.39591817 ns/iter 3022545.204633364 ns/iter 0.95
JSON_Fast_Hash_Helm_Chart_Lock 58.18492709360645 ns/iter 64.23887646561037 ns/iter 0.91
JSON_Equality_Helm_Chart_Lock 132.15748486052806 ns/iter 132.5628476962344 ns/iter 1.00
JSON_Divisible_By_Decimal 175.55606153320053 ns/iter 162.699351754123 ns/iter 1.08
JSON_String_Equal/10 6.962355014520703 ns/iter 6.572387544378132 ns/iter 1.06
JSON_String_Equal/100 6.420466925447963 ns/iter 6.18444619868963 ns/iter 1.04
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7758035881285195 ns/iter 0.698022135273412 ns/iter 1.11
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.343833115465451 ns/iter 3.032969985806016 ns/iter 1.10
JSON_String_Fast_Hash/10 2.3704860478698317 ns/iter 2.1944555659274556 ns/iter 1.08
JSON_String_Fast_Hash/100 2.1316357299141644 ns/iter 1.8804884880131447 ns/iter 1.13
JSON_String_Key_Hash/10 1.3604295526245487 ns/iter 1.2547771583319252 ns/iter 1.08
JSON_String_Key_Hash/100 2.1132809589555066 ns/iter 1.9917750540988326 ns/iter 1.06
JSON_Object_Defines_Miss_Same_Length 2.3815318898226594 ns/iter 2.194540130344043 ns/iter 1.09
JSON_Object_Defines_Miss_Too_Small 2.367477053065266 ns/iter 2.1930798418551594 ns/iter 1.08
JSON_Object_Defines_Miss_Too_Large 2.365936801308455 ns/iter 2.237980701671087 ns/iter 1.06
Pointer_Object_Traverse 14.066877910119066 ns/iter 12.914187773656645 ns/iter 1.09
Pointer_Object_Try_Traverse 19.131039795540495 ns/iter 18.788708379744644 ns/iter 1.02
Pointer_Push_Back_Pointer_To_Weak_Pointer 153.7001393754598 ns/iter 142.8727181614122 ns/iter 1.08
Pointer_Walker_Schema_ISO_Language 4258490.037735689 ns/iter 3493348.065656465 ns/iter 1.22
Pointer_Maybe_Tracked_Deeply_Nested/0 1012331.5102041243 ns/iter 905981.1769437551 ns/iter 1.12
Pointer_Maybe_Tracked_Deeply_Nested/1 1381445.75653927 ns/iter 1197048.750841746 ns/iter 1.15
Pointer_Position_Tracker_Get_Deeply_Nested 348.7758741080672 ns/iter 340.96562621695824 ns/iter 1.02
URITemplateRouter_Create 22942.679942916126 ns/iter 22027.845240627765 ns/iter 1.04
URITemplateRouter_Match 172.53653848668952 ns/iter 159.42087139530807 ns/iter 1.08
URITemplateRouter_Match_BasePath 197.60184777565473 ns/iter 183.7634351235315 ns/iter 1.08
URITemplateRouterView_Restore 9431.257256027026 ns/iter 8622.851466438338 ns/iter 1.09
URITemplateRouterView_Match 129.4154838999019 ns/iter 120.636179256009 ns/iter 1.07
URITemplateRouterView_Match_BasePath 148.62549689501415 ns/iter 139.09904690333494 ns/iter 1.07
URITemplateRouterView_Arguments 401.1059254051698 ns/iter 382.2883332153877 ns/iter 1.05
JSONL_Parse_Large 12238147.21666656 ns/iter 11216254.709678754 ns/iter 1.09
JSONL_Parse_Large_GZIP 13014302.089285731 ns/iter 11949507.172412973 ns/iter 1.09
HTML_Build_Table_100000 63536518.909095526 ns/iter 59323731.09090929 ns/iter 1.07
HTML_Render_Table_100000 3525427.306382948 ns/iter 2273139.651612705 ns/iter 1.55
GZIP_Compress_ISO_Language_Set_3_Locations 28394193.923077185 ns/iter 25810379.629627246 ns/iter 1.10
GZIP_Decompress_ISO_Language_Set_3_Locations 5114871.062991957 ns/iter 4713486.795774828 ns/iter 1.09
GZIP_Compress_ISO_Language_Set_3_Schema 1515373.181222697 ns/iter 1433771.5185185382 ns/iter 1.06
GZIP_Decompress_ISO_Language_Set_3_Schema 279819.58605218254 ns/iter 283377.8013910491 ns/iter 0.99

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

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

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: b85b150 Previous: b1ba863 Ratio
GZIP_Compress_ISO_Language_Set_3_Locations 38105640.83333803 ns/iter 38369916.22222286 ns/iter 0.99
GZIP_Decompress_ISO_Language_Set_3_Locations 4928368.248275892 ns/iter 5138238.842104947 ns/iter 0.96
GZIP_Compress_ISO_Language_Set_3_Schema 2074766.8041542477 ns/iter 2082200.7893173967 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 395453.79887015966 ns/iter 393702.0186125161 ns/iter 1.00
HTML_Build_Table_100000 58988609.24999857 ns/iter 59604984.16666364 ns/iter 0.99
HTML_Render_Table_100000 1792271.7295915873 ns/iter 1950509.6994382173 ns/iter 0.92
JSONL_Parse_Large 12845318.000001334 ns/iter 13163691.849056378 ns/iter 0.98
JSONL_Parse_Large_GZIP 14077683.739997156 ns/iter 14334960.591836486 ns/iter 0.98
URITemplateRouter_Create 30624.969507390506 ns/iter 31458.291646137164 ns/iter 0.97
URITemplateRouter_Match 183.98951590216643 ns/iter 176.99238865082282 ns/iter 1.04
URITemplateRouter_Match_BasePath 210.7890913314266 ns/iter 199.2576400785381 ns/iter 1.06
URITemplateRouterView_Restore 7652.588446492434 ns/iter 7953.036694870355 ns/iter 0.96
URITemplateRouterView_Match 146.81683589131381 ns/iter 146.36042544672338 ns/iter 1.00
URITemplateRouterView_Match_BasePath 164.90257616828643 ns/iter 164.79391995108935 ns/iter 1.00
URITemplateRouterView_Arguments 476.46200821994694 ns/iter 477.8926908491378 ns/iter 1.00
Pointer_Object_Traverse 24.61854065354625 ns/iter 25.04465679984552 ns/iter 0.98
Pointer_Object_Try_Traverse 19.95736967542015 ns/iter 20.09425503322566 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 141.88559024644394 ns/iter 143.71266367621158 ns/iter 0.99
Pointer_Walker_Schema_ISO_Language 3284295.9389671506 ns/iter 3342714.625592587 ns/iter 0.98
Pointer_Maybe_Tracked_Deeply_Nested/0 1596548.0861675902 ns/iter 1601754.1517241583 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 1779715.1493671008 ns/iter 1746519.3099999963 ns/iter 1.02
Pointer_Position_Tracker_Get_Deeply_Nested 593.1574898776636 ns/iter 394.76236399717453 ns/iter 1.50
JSON_Array_Of_Objects_Unique 428.1166130349971 ns/iter 434.4925861667746 ns/iter 0.99
JSON_Parse_1 7970.424813894743 ns/iter 8113.263772530838 ns/iter 0.98
JSON_Parse_Real 12216.64503810148 ns/iter 12330.019508280024 ns/iter 0.99
JSON_Parse_Decimal 18291.937330412187 ns/iter 18183.80537383209 ns/iter 1.01
JSON_Parse_Schema_ISO_Language 4668699.493333103 ns/iter 4682061.644295218 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 71.76802894146128 ns/iter 63.967678157512424 ns/iter 1.12
JSON_Equality_Helm_Chart_Lock 160.32865007318384 ns/iter 175.27584452388567 ns/iter 0.91
JSON_Divisible_By_Decimal 237.04724116148145 ns/iter 237.3891906775895 ns/iter 1.00
JSON_String_Equal/10 5.9807041849931295 ns/iter 5.965985479302046 ns/iter 1.00
JSON_String_Equal/100 6.587035553303554 ns/iter 6.592555731822184 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7404197496141851 ns/iter 0.740200149447448 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.20130849427292 ns/iter 25.19734133843414 ns/iter 1.00
JSON_String_Fast_Hash/10 0.934007394824243 ns/iter 0.938105624530457 ns/iter 1.00
JSON_String_Fast_Hash/100 0.9395006343719549 ns/iter 0.9343272107956307 ns/iter 1.01
JSON_String_Key_Hash/10 1.246517986362556 ns/iter 1.2477236263496858 ns/iter 1.00
JSON_String_Key_Hash/100 12.45257569539413 ns/iter 12.443961133481286 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.1225094013361696 ns/iter 3.119864004234053 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.1160184361516676 ns/iter 3.1217509022633325 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.4249435825007333 ns/iter 3.4288315722051306 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 0.9410661131684168 ns/iter 0.9345525748409307 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.622924914279224 ns/iter 0.6226628446912967 ns/iter 1.00
Regex_Period_Asterisk 0.6231659328153151 ns/iter 0.623225791899766 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 0.934629229475339 ns/iter 0.9341302170299072 ns/iter 1.00
Regex_Period_Plus 0.9349279664644622 ns/iter 0.9343502903085358 ns/iter 1.00
Regex_Period 0.6231806519285832 ns/iter 0.6232949162228205 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 0.6232304687812095 ns/iter 0.623351372638488 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 0.9332486735068607 ns/iter 0.9391529178490905 ns/iter 0.99
Regex_Caret_Period_Asterisk_Dollar 0.9339427245934739 ns/iter 0.9350717432516303 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.6228701498697276 ns/iter 0.6238085028892697 ns/iter 1.00
Regex_Caret_X_Hyphen 4.050568811773622 ns/iter 4.055875695863165 ns/iter 1.00
Regex_Period_Md_Dollar 30.40927886820588 ns/iter 28.154387709699837 ns/iter 1.08
Regex_Caret_Slash_Period_Asterisk 4.367629594645902 ns/iter 4.3740875470205385 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 0.7780327343936073 ns/iter 0.7795433827095314 ns/iter 1.00
Regex_Nested_Backtrack 37.23049584813926 ns/iter 36.41859911166033 ns/iter 1.02

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

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

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: b85b150 Previous: b1ba863 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 8.991321388429492 ns/iter 7.54993191964307 ns/iter 1.19
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 8.953838169643648 ns/iter 7.497877232144186 ns/iter 1.19
Regex_Period_Asterisk 8.873010228247772 ns/iter 7.512319196428965 ns/iter 1.18
Regex_Group_Period_Asterisk_Group 9.032615584677712 ns/iter 7.512736607141944 ns/iter 1.20
Regex_Period_Plus 11.28808437499984 ns/iter 9.668969153264811 ns/iter 1.17
Regex_Period 11.288370312499296 ns/iter 9.674029687502639 ns/iter 1.17
Regex_Caret_Period_Plus_Dollar 11.301955357144575 ns/iter 9.676529421086626 ns/iter 1.17
Regex_Caret_Group_Period_Plus_Group_Dollar 11.296019145999413 ns/iter 9.683055760343628 ns/iter 1.17
Regex_Caret_Period_Asterisk_Dollar 8.849874067636565 ns/iter 7.4983638392848 ns/iter 1.18
Regex_Caret_Group_Period_Asterisk_Group_Dollar 8.848178531927735 ns/iter 7.501571428572313 ns/iter 1.18
Regex_Caret_X_Hyphen 13.738805295810351 ns/iter 11.582073437498508 ns/iter 1.19
Regex_Period_Md_Dollar 40.97914028096789 ns/iter 37.906852894520114 ns/iter 1.08
Regex_Caret_Slash_Period_Asterisk 13.07652382555229 ns/iter 11.394284375001007 ns/iter 1.15
Regex_Caret_Period_Range_Dollar 11.302134375000605 ns/iter 9.675748617520501 ns/iter 1.17
Regex_Nested_Backtrack 50.0221700000111 ns/iter 46.18530237021245 ns/iter 1.08
JSON_Array_Of_Objects_Unique 514.186699999982 ns/iter 491.91577962600775 ns/iter 1.05
JSON_Parse_1 8077.182691147752 ns/iter 8263.19866071401 ns/iter 0.98
JSON_Parse_Real 13826.947647558174 ns/iter 15411.418699024445 ns/iter 0.90
JSON_Parse_Decimal 14795.216517856805 ns/iter 15709.325892859943 ns/iter 0.94
JSON_Parse_Schema_ISO_Language 6363900.892856529 ns/iter 5778451.785713757 ns/iter 1.10
JSON_Fast_Hash_Helm_Chart_Lock 73.30626116071366 ns/iter 64.56969866070393 ns/iter 1.14
JSON_Equality_Helm_Chart_Lock 278.6549811899729 ns/iter 258.1719914362619 ns/iter 1.08
JSON_Divisible_By_Decimal 255.173035714295 ns/iter 249.6851785714885 ns/iter 1.02
JSON_String_Equal/10 12.401469587493008 ns/iter 12.884008928568035 ns/iter 0.96
JSON_String_Equal/100 13.437771368580956 ns/iter 13.211425000000483 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 1.7685431708271036 ns/iter 1.8832090195389568 ns/iter 0.94
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 11.360409374997715 ns/iter 12.583719642853858 ns/iter 0.90
JSON_String_Fast_Hash/10 4.240343971321158 ns/iter 3.7570408861489404 ns/iter 1.13
JSON_String_Fast_Hash/100 4.23937667221449 ns/iter 3.779319436058852 ns/iter 1.12
JSON_String_Key_Hash/10 4.2401635790003915 ns/iter 3.760472656249649 ns/iter 1.13
JSON_String_Key_Hash/100 16.928223993783398 ns/iter 16.569078125000047 ns/iter 1.02
JSON_Object_Defines_Miss_Same_Length 3.9216212123600305 ns/iter 3.768825334821305 ns/iter 1.04
JSON_Object_Defines_Miss_Too_Small 3.9887215249788843 ns/iter 3.766561600417003 ns/iter 1.06
JSON_Object_Defines_Miss_Too_Large 4.972001785714854 ns/iter 5.151012000001174 ns/iter 0.97
Pointer_Object_Traverse 42.122120394315345 ns/iter 39.56230276199086 ns/iter 1.06
Pointer_Object_Try_Traverse 53.42972321429329 ns/iter 52.229719999991175 ns/iter 1.02
Pointer_Push_Back_Pointer_To_Weak_Pointer 150.86430803573793 ns/iter 180.38771074024152 ns/iter 0.84
Pointer_Walker_Schema_ISO_Language 13306651.785715725 ns/iter 12188001.562499551 ns/iter 1.09
Pointer_Maybe_Tracked_Deeply_Nested/0 2261808.333333771 ns/iter 1928018.394648102 ns/iter 1.17
Pointer_Maybe_Tracked_Deeply_Nested/1 3193461.1607147595 ns/iter 3187552.67857134 ns/iter 1.00
Pointer_Position_Tracker_Get_Deeply_Nested 640.5419642858997 ns/iter 614.8709936924455 ns/iter 1.04
URITemplateRouter_Create 37105.91953715655 ns/iter 39964.29110324364 ns/iter 0.93
URITemplateRouter_Match 209.6607986758572 ns/iter 215.5570937500073 ns/iter 0.97
URITemplateRouter_Match_BasePath 249.7796428571064 ns/iter 245.4581980515622 ns/iter 1.02
URITemplateRouterView_Restore 23166.549999999123 ns/iter 32616.00892856669 ns/iter 0.71
URITemplateRouterView_Match 156.33428571426577 ns/iter 156.90537946428304 ns/iter 1.00
URITemplateRouterView_Match_BasePath 186.33055935253293 ns/iter 184.85101014629137 ns/iter 1.01
URITemplateRouterView_Arguments 443.00037499994005 ns/iter 457.65920929888637 ns/iter 0.97
JSONL_Parse_Large 26274415.384617753 ns/iter 31341222.727271333 ns/iter 0.84
JSONL_Parse_Large_GZIP 26128926.923075385 ns/iter 30588191.99999561 ns/iter 0.85
HTML_Build_Table_100000 91536299.99999186 ns/iter 84248177.77778217 ns/iter 1.09
HTML_Render_Table_100000 7820448.888888777 ns/iter 7565762.2222226765 ns/iter 1.03
GZIP_Compress_ISO_Language_Set_3_Locations 43567041.17646907 ns/iter 40179758.82352938 ns/iter 1.08
GZIP_Decompress_ISO_Language_Set_3_Locations 11374526.562502041 ns/iter 10351670.312502392 ns/iter 1.10
GZIP_Compress_ISO_Language_Set_3_Schema 2540219.999999798 ns/iter 2291583.9464885388 ns/iter 1.11
GZIP_Decompress_ISO_Language_Set_3_Schema 687771.9866071885 ns/iter 651139.6428570444 ns/iter 1.06

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

@jviotti jviotti merged commit 16724f1 into main May 25, 2026
13 checks passed
@jviotti jviotti deleted the idn-hostname branch May 25, 2026 20:06
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