Skip to content

Conversation

@gleocadie
Copy link
Contributor

What does this PR do?

A brief description of the change being made with this pull request.

Motivation

What inspired you to submit this pull request?

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Describe here in detail how the change can be validated.

@gleocadie gleocadie force-pushed the gleocadie/wrap-libunwind branch 2 times, most recently from 7067a18 to b6f74b9 Compare February 4, 2026 19:35
@pr-commenter
Copy link

pr-commenter bot commented Feb 4, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-02-06 18:39:50

Comparing candidate commit fa7cdd1 in PR branch gleocadie/wrap-libunwind with baseline commit f483c69 in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 2 unstable metrics.

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 33.736µs 34.179µs ± 0.660µs 33.895µs ± 0.061µs 33.981µs 35.534µs 35.563µs 37.732µs 11.32% 2.063 4.028 1.92% 0.047µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [34.087µs; 34.270µs] or [-0.267%; +0.267%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 17.658µs 25.175µs ± 9.171µs 17.918µs ± 0.165µs 34.001µs 42.445µs 42.850µs 51.725µs 188.68% 0.729 -0.883 36.34% 0.648µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [23.904µs; 26.446µs] or [-5.049%; +5.049%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample2_frames_x1000 execution_time 537.045µs 537.748µs ± 0.384µs 537.693µs ± 0.188µs 537.899µs 538.318µs 538.515µs 540.824µs 0.58% 3.151 20.932 0.07% 0.027µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample2_frames_x1000 execution_time [537.695µs; 537.801µs] or [-0.010%; +0.010%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time 535.279µs 537.011µs ± 1.315µs 536.559µs ± 0.622µs 537.781µs 539.721µs 540.985µs 541.657µs 0.95% 1.191 0.864 0.24% 0.093µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1846187.595op/s 1862171.535op/s ± 4546.000op/s 1863726.306op/s ± 2161.896op/s 1865491.787op/s 1867194.506op/s 1867782.027op/s 1868185.450op/s 0.24% -1.181 0.828 0.24% 321.451op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 381.604µs 382.179µs ± 0.298µs 382.187µs ± 0.211µs 382.383µs 382.714µs 382.899µs 382.945µs 0.20% 0.391 -0.321 0.08% 0.021µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2611338.884op/s 2616577.955op/s ± 2040.069op/s 2616519.563op/s ± 1442.849op/s 2618082.981op/s 2619702.077op/s 2620120.178op/s 2620518.541op/s 0.15% -0.387 -0.325 0.08% 144.255op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.548µs 189.961µs ± 0.193µs 189.950µs ± 0.133µs 190.092µs 190.260µs 190.512µs 190.569µs 0.33% 0.464 0.204 0.10% 0.014µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5247438.836op/s 5264235.593op/s ± 5350.885op/s 5264552.418op/s ± 3699.312op/s 5268040.318op/s 5272404.283op/s 5274807.541op/s 5275710.725op/s 0.21% -0.457 0.194 0.10% 378.365op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.469µs 36.617µs ± 0.056µs 36.615µs ± 0.036µs 36.651µs 36.706µs 36.743µs 36.865µs 0.68% 0.561 1.456 0.15% 0.004µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27125995.865op/s 27309962.422op/s ± 41639.970op/s 27311070.561op/s ± 27136.338op/s 27337942.481op/s 27375086.926op/s 27396833.243op/s 27420715.546op/s 0.40% -0.547 1.414 0.15% 2944.391op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.840µs 45.979µs ± 0.049µs 45.976µs ± 0.029µs 46.008µs 46.053µs 46.097µs 46.177µs 0.44% 0.397 1.115 0.11% 0.003µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21655819.032op/s 21749285.110op/s ± 23305.471op/s 21750453.756op/s ± 13760.460op/s 21763290.934op/s 21784159.658op/s 21798013.521op/s 21814947.856op/s 0.30% -0.387 1.096 0.11% 1647.946op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [536.828µs; 537.193µs] or [-0.034%; +0.034%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1861541.503op/s; 1862801.567op/s] or [-0.034%; +0.034%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [382.137µs; 382.220µs] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2616295.221op/s; 2616860.689op/s] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [189.935µs; 189.988µs] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5263494.012op/s; 5264977.174op/s] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.609µs; 36.625µs] or [-0.021%; +0.021%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27304191.523op/s; 27315733.321op/s] or [-0.021%; +0.021%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.972µs; 45.985µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21746055.196op/s; 21752515.024op/s] or [-0.015%; +0.015%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2597 execution_time 9.560ms 9.905ms ± 0.086ms 9.908ms ± 0.033ms 9.941ms 10.003ms 10.120ms 10.508ms 6.07% 1.062 13.399 0.86% 0.006ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [9.893ms; 9.917ms] or [-0.120%; +0.120%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sql/obfuscate_sql_string execution_time 84.654µs 85.489µs ± 0.345µs 85.584µs ± 0.074µs 85.652µs 85.769µs 85.984µs 87.400µs 2.12% -0.299 4.624 0.40% 0.024µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [85.442µs; 85.537µs] or [-0.056%; +0.056%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
write only interface execution_time 1.172µs 3.216µs ± 1.457µs 2.983µs ± 0.022µs 3.007µs 3.691µs 13.904µs 15.350µs 414.65% 7.337 55.242 45.19% 0.103µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [3.014µs; 3.418µs] or [-6.278%; +6.278%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_frames_x1000 execution_time 3.946ms 3.951ms ± 0.006ms 3.950ms ± 0.001ms 3.951ms 3.955ms 3.957ms 4.029ms 2.00% 10.948 137.420 0.15% 0.000ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_frames_x1000 execution_time [3.950ms; 3.951ms] or [-0.021%; +0.021%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
single_flag_killswitch/rules-based execution_time 188.535ns 191.023ns ± 2.184ns 190.631ns ± 1.451ns 192.050ns 195.955ns 197.520ns 199.088ns 4.44% 1.196 1.220 1.14% 0.154ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [190.720ns; 191.325ns] or [-0.158%; +0.158%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 14.002ms 14.073ms ± 0.034ms 14.068ms ± 0.015ms 14.084ms 14.124ms 14.201ms 14.249ms 1.28% 2.326 8.359 0.24% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching serializing traces from their internal representation to msgpack execution_time [14.068ms; 14.078ms] or [-0.034%; +0.034%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
ip_address/quantize_peer_ip_address_benchmark execution_time 5.018µs 5.062µs ± 0.027µs 5.054µs ± 0.019µs 5.081µs 5.112µs 5.116µs 5.181µs 2.50% 0.857 0.503 0.54% 0.002µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.058µs; 5.066µs] or [-0.075%; +0.075%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 204.678µs 205.622µs ± 0.607µs 205.457µs ± 0.323µs 205.904µs 206.796µs 207.401µs 207.811µs 1.15% 1.079 1.093 0.29% 0.043µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4812070.598op/s 4863323.259op/s ± 14305.388op/s 4867208.360op/s ± 7647.940op/s 4872875.978op/s 4881854.345op/s 4884995.250op/s 4885718.962op/s 0.38% -1.062 1.041 0.29% 1011.544op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.576µs 18.683µs ± 0.087µs 18.662µs ± 0.038µs 18.707µs 18.814µs 18.956µs 19.394µs 3.92% 3.418 21.636 0.47% 0.006µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 51561602.995op/s 53526636.472op/s ± 246234.939op/s 53584863.238op/s ± 109582.319op/s 53673109.694op/s 53770785.567op/s 53806933.368op/s 53832204.059op/s 0.46% -3.257 19.858 0.46% 17411.440op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.846µs 10.923µs ± 0.030µs 10.923µs ± 0.020µs 10.944µs 10.969µs 11.005µs 11.009µs 0.79% 0.110 0.118 0.28% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 90833148.441op/s 91549660.394op/s ± 253357.760op/s 91551451.916op/s ± 168800.611op/s 91715686.637op/s 91978425.798op/s 92079433.371op/s 92195987.510op/s 0.70% -0.092 0.104 0.28% 17915.099op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [205.538µs; 205.707µs] or [-0.041%; +0.041%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4861340.670op/s; 4865305.848op/s] or [-0.041%; +0.041%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.671µs; 18.695µs] or [-0.065%; +0.065%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53492510.678op/s; 53560762.266op/s] or [-0.064%; +0.064%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.919µs; 10.927µs] or [-0.038%; +0.038%] None None None
normalization/normalize_name/normalize_name/good throughput [91514547.445op/s; 91584773.342op/s] or [-0.038%; +0.038%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
credit_card/is_card_number/ execution_time 3.897µs 3.913µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.919µs 3.920µs 0.20% -0.570 4.246 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255082114.594op/s 255589495.672op/s ± 178014.142op/s 255595819.150op/s ± 109682.730op/s 255703669.348op/s 255831053.311op/s 255926513.904op/s 256597784.328op/s 0.39% 0.583 4.307 0.07% 12587.501op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.100µs 77.573µs ± 0.437µs 77.456µs ± 0.234µs 77.743µs 78.429µs 78.803µs 80.013µs 3.30% 1.839 4.902 0.56% 0.031µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12497960.604op/s 12891555.889op/s ± 71841.253op/s 12910625.446op/s ± 39083.956op/s 12946771.832op/s 12961078.634op/s 12966338.617op/s 12970225.992op/s 0.46% -1.782 4.514 0.56% 5079.944op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 70.662µs 71.249µs ± 0.447µs 71.163µs ± 0.279µs 71.489µs 72.053µs 72.536µs 72.952µs 2.51% 1.117 1.067 0.63% 0.032µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13707659.373op/s 14035783.743op/s ± 87377.010op/s 14052282.665op/s ± 55247.939op/s 14101938.312op/s 14140976.034op/s 14148772.617op/s 14151794.151op/s 0.71% -1.083 0.947 0.62% 6178.488op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.897µs 3.913µs ± 0.008µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.920µs 3.994µs 2.11% 8.116 73.459 0.22% 0.001µs 1 200
credit_card/is_card_number/37828224631 throughput 250379904.485op/s 255566501.310op/s ± 544482.620op/s 255651398.719op/s ± 134429.689op/s 255745391.256op/s 255858830.659op/s 255910933.699op/s 256619961.700op/s 0.38% -8.054 72.711 0.21% 38500.735op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 67.426µs 67.666µs ± 0.334µs 67.523µs ± 0.044µs 67.716µs 68.352µs 68.983µs 69.428µs 2.82% 2.775 8.258 0.49% 0.024µs 1 200
credit_card/is_card_number/378282246310005 throughput 14403497.636op/s 14778769.070op/s ± 71940.629op/s 14809668.492op/s ± 9578.548op/s 14815697.602op/s 14824217.591op/s 14828658.133op/s 14831087.442op/s 0.14% -2.738 8.001 0.49% 5086.971op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 44.734µs 45.128µs ± 0.144µs 45.128µs ± 0.097µs 45.221µs 45.351µs 45.503µs 45.545µs 0.92% 0.123 0.353 0.32% 0.010µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21956426.384op/s 22159331.591op/s ± 70478.064op/s 22159064.454op/s ± 47601.816op/s 22207617.769op/s 22271492.895op/s 22341302.359op/s 22354118.233op/s 0.88% -0.100 0.346 0.32% 4983.552op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.027µs 6.037µs ± 0.004µs 6.037µs ± 0.003µs 6.040µs 6.043µs 6.046µs 6.048µs 0.18% -0.002 -0.468 0.07% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 165341524.487op/s 165647130.903op/s ± 112954.511op/s 165637989.483op/s ± 85222.669op/s 165734464.455op/s 165814964.814op/s 165888792.151op/s 165931766.416op/s 0.18% 0.006 -0.469 0.07% 7987.090op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.893µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.913µs 3.916µs 3.917µs 3.917µs 0.14% -1.477 10.849 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255290819.874op/s 255650766.665op/s ± 169698.845op/s 255654876.915op/s ± 104430.231op/s 255756509.420op/s 255875825.083op/s 255919636.118op/s 256850200.885op/s 0.47% 1.499 11.021 0.07% 11999.520op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.470µs 65.793µs ± 0.081µs 65.801µs ± 0.047µs 65.848µs 65.905µs 65.954µs 65.966µs 0.25% -0.815 1.229 0.12% 0.006µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15159380.074op/s 15199107.757op/s ± 18740.989op/s 15197280.826op/s ± 10796.234op/s 15208182.500op/s 15231125.536op/s 15250596.872op/s 15274118.007op/s 0.51% 0.824 1.256 0.12% 1325.188op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 52.942µs 53.031µs ± 0.038µs 53.031µs ± 0.026µs 53.054µs 53.093µs 53.112µs 53.191µs 0.30% 0.414 0.676 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18800186.052op/s 18857042.751op/s ± 13509.380op/s 18856786.845op/s ± 9245.003op/s 18867607.621op/s 18878368.411op/s 18881694.055op/s 18888672.463op/s 0.17% -0.409 0.661 0.07% 955.257op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.895µs 3.912µs ± 0.003µs 3.912µs ± 0.001µs 3.914µs 3.918µs 3.920µs 3.923µs 0.27% -0.342 5.165 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254927254.936op/s 255608342.588op/s ± 196179.729op/s 255622622.187op/s ± 97465.730op/s 255701326.515op/s 255876396.847op/s 255959437.720op/s 256728806.761op/s 0.43% 0.359 5.232 0.08% 13872.002op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 49.734µs 49.803µs ± 0.030µs 49.800µs ± 0.021µs 49.823µs 49.853µs 49.877µs 49.920µs 0.24% 0.491 0.420 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 20032183.048op/s 20078925.899op/s ± 12290.854op/s 20080322.288op/s ± 8534.753op/s 20088324.165op/s 20096893.223op/s 20101249.322op/s 20106928.848op/s 0.13% -0.487 0.411 0.06% 869.095op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 44.728µs 45.186µs ± 0.149µs 45.180µs ± 0.101µs 45.294µs 45.432µs 45.459µs 45.507µs 0.72% -0.209 -0.243 0.33% 0.011µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21974449.852op/s 22131188.718op/s ± 72831.789op/s 22133519.768op/s ± 49325.593op/s 22175688.254op/s 22256419.975op/s 22292422.781op/s 22357486.132op/s 1.01% 0.226 -0.226 0.33% 5149.985op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.026µs 6.035µs ± 0.006µs 6.035µs ± 0.002µs 6.037µs 6.041µs 6.045µs 6.107µs 1.20% 7.729 86.360 0.10% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 163750015.688op/s 165688433.171op/s ± 168870.015op/s 165710547.477op/s ± 60526.872op/s 165766107.524op/s 165835585.517op/s 165909183.949op/s 165938220.910op/s 0.14% -7.641 85.015 0.10% 11940.913op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
credit_card/is_card_number/ execution_time [3.912µs; 3.913µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255564824.624op/s; 255614166.720op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [77.512µs; 77.633µs] or [-0.078%; +0.078%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12881599.382op/s; 12901512.395op/s] or [-0.077%; +0.077%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.187µs; 71.311µs] or [-0.087%; +0.087%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14023674.129op/s; 14047893.356op/s] or [-0.086%; +0.086%] None None None
credit_card/is_card_number/37828224631 execution_time [3.912µs; 3.914µs] or [-0.030%; +0.030%] None None None
credit_card/is_card_number/37828224631 throughput [255491041.256op/s; 255641961.365op/s] or [-0.030%; +0.030%] None None None
credit_card/is_card_number/378282246310005 execution_time [67.620µs; 67.713µs] or [-0.068%; +0.068%] None None None
credit_card/is_card_number/378282246310005 throughput [14768798.791op/s; 14788739.350op/s] or [-0.067%; +0.067%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.108µs; 45.148µs] or [-0.044%; +0.044%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [22149564.009op/s; 22169099.172op/s] or [-0.044%; +0.044%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.036µs; 6.038µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/x371413321323331 throughput [165631476.494op/s; 165662785.312op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255627248.037op/s; 255674285.293op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.782µs; 65.805µs] or [-0.017%; +0.017%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15196510.436op/s; 15201705.078op/s] or [-0.017%; +0.017%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.025µs; 53.036µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18855170.481op/s; 18858915.022op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255581153.965op/s; 255635531.212op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [49.799µs; 49.808µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [20077222.505op/s; 20080629.293op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.165µs; 45.206µs] or [-0.046%; +0.046%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [22121094.933op/s; 22141282.504op/s] or [-0.046%; +0.046%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.035µs; 6.036µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165665029.411op/s; 165711836.930op/s] or [-0.014%; +0.014%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sdk_test_data/rules-based execution_time 144.211µs 145.967µs ± 1.666µs 145.704µs ± 0.471µs 146.212µs 147.420µs 151.644µs 161.646µs 10.94% 5.727 44.672 1.14% 0.118µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sdk_test_data/rules-based execution_time [145.736µs; 146.197µs] or [-0.158%; +0.158%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching string interning on wordpress profile execution_time 161.432µs 162.031µs ± 0.452µs 161.946µs ± 0.135µs 162.095µs 162.649µs 163.548µs 166.504µs 2.81% 5.599 48.232 0.28% 0.032µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [161.968µs; 162.093µs] or [-0.039%; +0.039%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching deserializing traces from msgpack to their internal representation execution_time 48.433ms 48.798ms ± 1.495ms 48.605ms ± 0.085ms 48.691ms 48.802ms 57.160ms 63.891ms 31.45% 8.414 72.664 3.06% 0.106ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [48.591ms; 49.005ms] or [-0.424%; +0.424%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
concentrator/add_spans_to_concentrator execution_time 10.622ms 10.662ms ± 0.018ms 10.661ms ± 0.009ms 10.670ms 10.688ms 10.732ms 10.741ms 0.75% 1.317 4.116 0.16% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [10.660ms; 10.665ms] or [-0.023%; +0.023%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_trace/test_trace execution_time 240.957ns 254.829ns ± 16.159ns 246.999ns ± 4.541ns 263.577ns 290.612ns 301.880ns 303.818ns 23.00% 1.458 1.102 6.33% 1.143ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [252.590ns; 257.069ns] or [-0.879%; +0.879%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz fa7cdd1 1770402085 gleocadie/wrap-libunwind
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
tags/replace_trace_tags execution_time 2.421µs 2.446µs ± 0.014µs 2.442µs ± 0.006µs 2.450µs 2.468µs 2.473µs 2.575µs 5.42% 4.104 32.853 0.58% 0.001µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.444µs; 2.448µs] or [-0.080%; +0.080%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Feb 4, 2026

Codecov Report

❌ Patch coverage is 94.80519% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.27%. Comparing base (f483c69) to head (fa7cdd1).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1510      +/-   ##
==========================================
+ Coverage   71.20%   71.27%   +0.07%     
==========================================
  Files         424      425       +1     
  Lines       69802    69876      +74     
==========================================
+ Hits        49700    49805     +105     
+ Misses      20102    20071      -31     
Components Coverage Δ
libdd-crashtracker 62.37% <33.33%> (+0.01%) ⬆️
libdd-crashtracker-ffi 16.80% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.86% <ø> (ø)
libdd-data-pipeline-ffi 78.68% <ø> (ø)
libdd-common 80.58% <ø> (ø)
libdd-common-ffi 74.54% <ø> (ø)
libdd-telemetry 65.06% <ø> (-0.03%) ⬇️
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.70% <ø> (+0.10%) ⬆️
libdd-profiling 81.73% <ø> (ø)
libdd-profiling-ffi 64.71% <ø> (ø)
datadog-sidecar 34.62% <ø> (+0.22%) ⬆️
datdog-sidecar-ffi 8.70% <ø> (+1.03%) ⬆️
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 93.43% <ø> (ø)
libdd-trace-normalization 82.33% <ø> (ø)
libdd-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 61.18% <ø> (ø)
libdd-trace-utils 89.37% <ø> (ø)
datadog-tracer-flare 62.06% <ø> (ø)
libdd-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@gleocadie gleocadie force-pushed the gleocadie/wrap-libunwind branch 4 times, most recently from 132829d to d7ef8a9 Compare February 6, 2026 11:45
@gleocadie gleocadie force-pushed the gleocadie/wrap-libunwind branch 4 times, most recently from 7e298c5 to 55827cb Compare February 6, 2026 14:01
@gleocadie gleocadie force-pushed the gleocadie/wrap-libunwind branch from 55827cb to 6097468 Compare February 6, 2026 14:10
@github-actions
Copy link

github-actions bot commented Feb 6, 2026

📚 Documentation Check Results

⚠️ 997 documentation warning(s) found

📦 libdd-crashtracker - 997 warning(s)


Updated: 2026-02-06 18:24:13 UTC | Commit: 147d5c9 | missing-docs job results

@gleocadie gleocadie force-pushed the gleocadie/wrap-libunwind branch from be0502f to 6e903c9 Compare February 6, 2026 16:03
@github-actions
Copy link

github-actions bot commented Feb 6, 2026

🔒 Cargo Deny Results

⚠️ 8 issue(s) found, showing only errors (advisories, bans, sources)

📦 libdd-crashtracker - 8 error(s)

Show output
error[vulnerability]: Integer overflow in `BytesMut::reserve`
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:26:1
   │
26 │ bytes 1.8.0 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2026-0007
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0007
   ├ In the unique reclaim path of `BytesMut::reserve`, the condition
     ```rs
     if v_capacity >= new_cap + offset
     ```
     uses an unchecked addition. When `new_cap + offset` overflows `usize` in release builds, this condition may incorrectly pass, causing `self.cap` to be set to a value that exceeds the actual allocated capacity. Subsequent APIs such as `spare_capacity_mut()` then trust this corrupted `cap` value and may create out-of-bounds slices, leading to UB.
     
     This behavior is observable in release builds (integer overflow wraps), whereas debug builds panic due to overflow checks.
     
     ## PoC
     
     ```rs
     use bytes::*;
     
     fn main() {
         let mut a = BytesMut::from(&b"hello world"[..]);
         let mut b = a.split_off(5);
     
         // Ensure b becomes the unique owner of the backing storage
         drop(a);
     
         // Trigger overflow in new_cap + offset inside reserve
         b.reserve(usize::MAX - 6);
     
         // This call relies on the corrupted cap and may cause UB & HBO
         b.put_u8(b'h');
     }
     ```
     
     # Workarounds
     
     Users of `BytesMut::reserve` are only affected if integer overflow checks are configured to wrap. When integer overflow is configured to panic, this issue does not apply.
   ├ Announcement: https://github.com/advisories/GHSA-434x-w66g-qw3r
   ├ Solution: Upgrade to >=1.11.1 (try `cargo update -p bytes`)
   ├ bytes v1.8.0
     ├── http v1.1.0
     │   ├── http-body v1.0.1
     │   │   ├── http-body-util v0.1.2
     │   │   │   ├── libdd-common v1.1.0
     │   │   │   │   ├── (build) libdd-crashtracker v1.0.0
     │   │   │   │   └── libdd-telemetry v2.0.0
     │   │   │   │       └── libdd-crashtracker v1.0.0 (*)
     │   │   │   └── libdd-telemetry v2.0.0 (*)
     │   │   ├── hyper v1.6.0
     │   │   │   ├── hyper-rustls v0.27.3
     │   │   │   │   └── libdd-common v1.1.0 (*)
     │   │   │   ├── hyper-util v0.1.17
     │   │   │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   │   └── libdd-telemetry v2.0.0 (*)
     │   │   │   ├── libdd-common v1.1.0 (*)
     │   │   │   └── libdd-telemetry v2.0.0 (*)
     │   │   ├── hyper-util v0.1.17 (*)
     │   │   └── libdd-common v1.1.0 (*)
     │   ├── http-body-util v0.1.2 (*)
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── libdd-common v1.1.0 (*)
     │   ├── libdd-crashtracker v1.0.0 (*)
     │   └── libdd-telemetry v2.0.0 (*)
     ├── http-body v1.0.1 (*)
     ├── http-body-util v0.1.2 (*)
     ├── hyper v1.6.0 (*)
     ├── hyper-util v0.1.17 (*)
     ├── prost v0.14.3
     │   └── libdd-ddsketch v1.0.0
     │       └── libdd-telemetry v2.0.0 (*)
     ├── tokio v1.49.0
     │   ├── hyper v1.6.0 (*)
     │   ├── hyper-rustls v0.27.3 (*)
     │   ├── hyper-util v0.1.17 (*)
     │   ├── (dev) libdd-common v1.1.0 (*)
     │   ├── libdd-crashtracker v1.0.0 (*)
     │   ├── (dev) libdd-telemetry v2.0.0 (*)
     │   ├── tokio-rustls v0.26.0
     │   │   ├── hyper-rustls v0.27.3 (*)
     │   │   └── libdd-common v1.1.0 (*)
     │   └── tokio-util v0.7.12
     │       └── libdd-telemetry v2.0.0 (*)
     └── tokio-util v0.7.12 (*)

error[vulnerability]: Lenient `hyper` header parsing of `Content-Length` could allow request smuggling
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:93:1
   │
93 │ hyper 0.10.16 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2021-0078
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2021-0078
   ├ `hyper`'s HTTP header parser accepted, according to RFC 7230, illegal contents inside `Content-Length` headers.
     Due to this, upstream HTTP proxies that ignore the header may still forward them along if it chooses to ignore the error.
     
     To be vulnerable, `hyper` must be used as an HTTP/1 server and using an HTTP proxy upstream that ignores the header's contents
     but still forwards it. Due to all the factors that must line up, an attack exploiting this vulnerability is unlikely.
   ├ Announcement: https://github.com/hyperium/hyper/security/advisories/GHSA-f3pg-qwvg-p99c
   ├ Solution: Upgrade to >=0.14.10 (try `cargo update -p hyper`)
   ├ hyper v0.10.16
     ├── iron v0.6.1
     │   └── multipart v0.18.0
     │       └── (dev) libdd-common v1.1.0
     │           ├── (build) libdd-crashtracker v1.0.0
     │           └── libdd-telemetry v2.0.0
     │               └── libdd-crashtracker v1.0.0 (*)
     ├── multipart v0.18.0 (*)
     └── nickel v0.11.0
         └── multipart v0.18.0 (*)

error[vulnerability]: Integer overflow in `hyper`'s parsing of the `Transfer-Encoding` header leads to data loss
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:93:1
   │
93 │ hyper 0.10.16 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2021-0079
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2021-0079
   ├ When decoding chunk sizes that are too large, `hyper`'s code would encounter an integer overflow. Depending on the situation,
     this could lead to data loss from an incorrect total size, or in rarer cases, a request smuggling attack.
     
     To be vulnerable, you must be using `hyper` for any HTTP/1 purpose, including as a client or server, and consumers must send
     requests or responses that specify a chunk size greater than 18 exabytes. For a possible request smuggling attack to be possible,
     any upstream proxies must accept a chunk size greater than 64 bits.
   ├ Announcement: https://github.com/hyperium/hyper/security/advisories/GHSA-5h46-h7hh-c6x9
   ├ Solution: Upgrade to >=0.14.10 (try `cargo update -p hyper`)
   ├ hyper v0.10.16
     ├── iron v0.6.1
     │   └── multipart v0.18.0
     │       └── (dev) libdd-common v1.1.0
     │           ├── (build) libdd-crashtracker v1.0.0
     │           └── libdd-telemetry v2.0.0
     │               └── libdd-crashtracker v1.0.0 (*)
     ├── multipart v0.18.0 (*)
     └── nickel v0.11.0
         └── multipart v0.18.0 (*)

error[vulnerability]: `idna` accepts Punycode labels that do not produce any non-ASCII when decoded
   ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:99:1
   │
99 │ idna 0.1.5 registry+https://github.com/rust-lang/crates.io-index
   │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
   │
   ├ ID: RUSTSEC-2024-0421
   ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2024-0421
   ├ `idna` 0.5.0 and earlier accepts Punycode labels that do not produce any non-ASCII output, which means that either ASCII labels or the empty root label can be masked such that they appear unequal without IDNA processing or when processed with a different implementation and equal when processed with `idna` 0.5.0 or earlier.
     
     Concretely, `example.org` and `xn--example-.org` become equal after processing by `idna` 0.5.0 or earlier. Also, `example.org.xn--` and `example.org.` become equal after processing by `idna` 0.5.0 or earlier.
     
     In applications using `idna` (but not in `idna` itself) this may be able to lead to privilege escalation when host name comparison is part of a privilege check and the behavior is combined with a client that resolves domains with such labels instead of treating them as errors that preclude DNS resolution / URL fetching and with the attacker managing to introduce a DNS entry (and TLS certificate) for an `xn--`-masked name that turns into the name of the target when processed by `idna` 0.5.0 or earlier.
     
     ## Remedy
     
     Upgrade to `idna` 1.0.3 or later, if depending on `idna` directly, or to `url` 2.5.4 or later, if depending on `idna` via `url`. (This issue was fixed in `idna` 1.0.0, but versions earlier than 1.0.3 are not recommended for other reasons.)
     
     When upgrading, please take a moment to read about [alternative Unicode back ends for `idna`](https://docs.rs/crate/idna_adapter/latest).
     
     If you are using Rust earlier than 1.81 in combination with SQLx 0.8.2 or earlier, please also read an [issue](https://github.com/servo/rust-url/issues/992) about combining them with `url` 2.5.4 and `idna` 1.0.3.
     
     ## Additional information
     
     This issue resulted from `idna` 0.5.0 and earlier implementing the UTS 46 specification literally on this point and the specification having this bug. The specification bug has been fixed in [revision 33 of UTS 46](https://www.unicode.org/reports/tr46/tr46-33.html#Modifications).
     
     ## Acknowledgements
     
     Thanks to kageshiron for recognizing the security implications of this behavior.
   ├ Announcement: https://bugzilla.mozilla.org/show_bug.cgi?id=1887898
   ├ Solution: Upgrade to >=1.0.0 (try `cargo update -p idna`)
   ├ idna v0.1.5
     └── url v1.7.2
         ├── hyper v0.10.16
         │   ├── iron v0.6.1
         │   │   └── multipart v0.18.0
         │   │       └── (dev) libdd-common v1.1.0
         │   │           ├── (build) libdd-crashtracker v1.0.0
         │   │           └── libdd-telemetry v2.0.0
         │   │               └── libdd-crashtracker v1.0.0 (*)
         │   ├── multipart v0.18.0 (*)
         │   └── nickel v0.11.0
         │       └── multipart v0.18.0 (*)
         ├── iron v0.6.1 (*)
         ├── nickel v0.11.0 (*)
         └── tiny_http v0.6.4
             └── multipart v0.18.0 (*)

error[unmaintained]: multipart is Unmaintained
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:136:1
    │
136 │ multipart 0.18.0 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ unmaintained advisory detected
    │
    ├ ID: RUSTSEC-2023-0050
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2023-0050
    ├ The `multipart` crate is unmaintained. The author has archived the github
      repository.
      
      Alternatives:
      
      - [multer](https://crates.io/crates/multer)
      - [multiparty](https://crates.io/crates/multiparty)
    ├ Solution: No safe upgrade is available!
    ├ multipart v0.18.0
      └── (dev) libdd-common v1.1.0
          ├── (build) libdd-crashtracker v1.0.0
          └── libdd-telemetry v2.0.0
              └── libdd-crashtracker v1.0.0 (*)

error[unmaintained]: paste - no longer maintained
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:166:1
    │
166 │ paste 1.0.15 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ unmaintained advisory detected
    │
    ├ ID: RUSTSEC-2024-0436
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2024-0436
    ├ The creator of the crate `paste` has stated in the [`README.md`](https://github.com/dtolnay/paste/blob/master/README.md) 
      that this project is not longer maintained as well as archived the repository
      
      ## Possible Alternative(s)
      
      - [`pastey`]: a fork of paste and is aimed to be a drop-in replacement with additional features for paste crate
      - [`with_builtin_macros`]: crate providing a [superset of `paste`'s functionality including general `macro_rules!` eager expansions](https://docs.rs/with_builtin_macros/0.1.0/with_builtin_macros/macro.with_eager_expansions.html)  and `concat!`/`concat_idents!` macros
      
      [`pastey`]: https://crates.io/crates/pastey
      [`with_builtin_macros`]: https://crates.io/crates/with_builtin_macros
    ├ Announcement: https://github.com/dtolnay/paste
    ├ Solution: No safe upgrade is available!
    ├ paste v1.0.15
      └── libdd-libunwind v26.0.0
          └── libdd-crashtracker v1.0.0

error[vulnerability]: Potential segfault in the time crate
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:252:1
    │
252 │ time 0.1.45 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
    │
    ├ ID: RUSTSEC-2020-0071
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2020-0071
    ├ ### Impact
      
      The affected functions set environment variables without synchronization. On Unix-like operating systems, this can crash in multithreaded programs. Programs may segfault due to dereferencing a dangling pointer if an environment variable is read in a different thread than the affected functions. This may occur without the user's knowledge, notably in the Rust standard library or third-party libraries.
      
      The affected functions from time 0.2.7 through 0.2.22 are:
      
      - `time::UtcOffset::local_offset_at`
      - `time::UtcOffset::try_local_offset_at`
      - `time::UtcOffset::current_local_offset`
      - `time::UtcOffset::try_current_local_offset`
      - `time::OffsetDateTime::now_local`
      - `time::OffsetDateTime::try_now_local`
      
      The affected functions in time 0.1 (all versions) are:
      
      - `time::at_utc`
      - `time::at`
      - `time::now`
      - `time::tzset`
      
      Non-Unix targets (including Windows and wasm) are unaffected.
      
      ### Patches
      
      Pending a proper fix, the internal method that determines the local offset has been modified to always return `None` on the affected operating systems. This has the effect of returning an `Err` on the `try_*` methods and `UTC` on the non-`try_*` methods.
      
      Users and library authors with time in their dependency tree should perform `cargo update`, which will pull in the updated, unaffected code.
      
      Users of time 0.1 do not have a patch and should upgrade to an unaffected version: time 0.2.23 or greater or the 0.3 series.
      
      ### Workarounds
      
      A possible workaround for crates affected through the transitive dependency in `chrono`, is to avoid using the default `oldtime` feature dependency of the `chrono` crate by disabling its `default-features` and manually specifying the required features instead.
      
      #### Examples:
      
      `Cargo.toml`:  
      
      ```toml
      chrono = { version = "0.4", default-features = false, features = ["serde"] }
      ```
      
      ```toml
      chrono = { version = "0.4.22", default-features = false, features = ["clock"] }
      ```
      
      Commandline:  
      
      ```bash
      cargo add chrono --no-default-features -F clock
      ```
      
      Sources:  
       - [chronotope/chrono#602 (comment)](https://github.com/chronotope/chrono/issues/602#issuecomment-1242149249)  
       - [vityafx/serde-aux#21](https://github.com/vityafx/serde-aux/issues/21)
    ├ Announcement: https://github.com/time-rs/time/issues/293
    ├ Solution: Upgrade to >=0.2.23 (try `cargo update -p time`)
    ├ time v0.1.45
      ├── hyper v0.10.16
      │   ├── iron v0.6.1
      │   │   └── multipart v0.18.0
      │   │       └── (dev) libdd-common v1.1.0
      │   │           ├── (build) libdd-crashtracker v1.0.0
      │   │           └── libdd-telemetry v2.0.0
      │   │               └── libdd-crashtracker v1.0.0 (*)
      │   ├── multipart v0.18.0 (*)
      │   └── nickel v0.11.0
      │       └── multipart v0.18.0 (*)
      └── nickel v0.11.0 (*)

error[vulnerability]: Logging user input may result in poisoning logs with ANSI escape sequences
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:265:1
    │
265 │ tracing-subscriber 0.3.19 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
    │
    ├ ID: RUSTSEC-2025-0055
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2025-0055
    ├ Previous versions of tracing-subscriber were vulnerable to ANSI escape sequence injection attacks. Untrusted user input containing ANSI escape sequences could be injected into terminal output when logged, potentially allowing attackers to:
      
      - Manipulate terminal title bars
      - Clear screens or modify terminal display
      - Potentially mislead users through terminal manipulation
      
      In isolation, impact is minimal, however security issues have been found in terminal emulators that enabled an attacker to use ANSI escape sequences via logs to exploit vulnerabilities in the terminal emulator.
      
      This was patched in [PR #3368](https://github.com/tokio-rs/tracing/pull/3368) to escape ANSI control characters from user input.
    ├ Announcement: https://github.com/advisories/GHSA-xwfj-jgwm-7wp5
    ├ Solution: Upgrade to >=0.3.20 (try `cargo update -p tracing-subscriber`)
    ├ tracing-subscriber v0.3.19
      └── (dev) libdd-telemetry v2.0.0
          └── libdd-crashtracker v1.0.0

advisories FAILED, bans ok, sources ok

Updated: 2026-02-06 18:27:09 UTC | Commit: 147d5c9 | dependency-check job results

@danielsn
Copy link
Contributor

danielsn commented Feb 6, 2026

Should this be a public libunwind-sys crate?

@gleocadie gleocadie force-pushed the gleocadie/wrap-libunwind branch 2 times, most recently from 9a04601 to b406281 Compare February 6, 2026 17:02
@gleocadie gleocadie force-pushed the gleocadie/wrap-libunwind branch from b406281 to fa7cdd1 Compare February 6, 2026 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants