Skip to content

Simplify the simpleserver example by using rustls::Stream #2522

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 25, 2025

Conversation

Ten0
Copy link
Contributor

@Ten0 Ten0 commented Jun 25, 2025

Resolves #2520

This should hopefully make it easier to understand what the idiomatic way to use rustls in the most basic way (as a wrapper over an existing impl Read+Write) is.

cc @cpu

Copy link

codecov bot commented Jun 25, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.31%. Comparing base (8366265) to head (1da9d34).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2522   +/-   ##
=======================================
  Coverage   95.31%   95.31%           
=======================================
  Files          97       97           
  Lines       21514    21514           
=======================================
  Hits        20507    20507           
  Misses       1007     1007           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Member

@ctz ctz left a comment

Choose a reason for hiding this comment

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

I think this is OK. I think we don't generally want to encourage rustls::Stream use, as it's pretty narrowly applicable and very hard to make a robust program with (especially for a server!) but actually this is mostly a comment about blocking IO and thread-per-client models.

Copy link

rustls-benchmarking bot commented Jun 25, 2025

Benchmark results

Instruction counts

Significant differences

⚠️ There are significant instruction count differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_client 64284992 64578491 ⚠️ 293499 (0.46%) 0.30%

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 9466827 9520770 53943 (0.57%) 0.97%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_server 11354593 11318978 -35615 (-0.31%) 1.04%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_server 48004477 48151172 146695 (0.31%) 0.31%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_server 11339228 11370723 31495 (0.28%) 1.60%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_client 64570154 64724184 154030 (0.24%) 0.79%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_client 64413891 64518635 104744 (0.16%) 0.55%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_server 49377448 49454321 76873 (0.16%) 0.55%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_client 64586591 64685670 99079 (0.15%) 0.50%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_client 64620514 64712236 91722 (0.14%) 0.69%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 9491205 9502005 10800 (0.11%) 0.92%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_server 48105369 48157450 52081 (0.11%) 0.50%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_server 10470380 10459597 -10783 (-0.10%) 1.02%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_server 49369191 49418754 49563 (0.10%) 0.31%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_client 64553646 64613974 60328 (0.09%) 0.68%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_server 49412544 49458365 45821 (0.09%) 0.38%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_client 64462119 64419931 -42188 (-0.07%) 0.58%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_server 49380472 49410746 30274 (0.06%) 0.45%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 1760710 1761602 892 (0.05%) 1.05%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_server 48131249 48111423 -19826 (-0.04%) 0.42%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_client 64373203 64350262 -22941 (-0.04%) 0.57%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 4276631 4275340 -1291 (-0.03%) 0.43%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 4279864 4278591 -1273 (-0.03%) 0.31%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_server 48038162 48027892 -10270 (-0.02%) 0.43%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_client 3113256 3112644 -612 (-0.02%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 2670123 2669698 -425 (-0.02%) 0.28%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_client 3107694 3107224 -470 (-0.02%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 2666593 2666895 302 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_client 64342213 64349315 7102 (0.01%) 0.61%
handshake_no_resume_ring_1.3_ecdsap256_aes_client 3303227 3302917 -310 (-0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_server 48078259 48081822 3563 (0.01%) 0.50%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 1763655 1763532 -123 (-0.01%) 1.11%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_client 64388645 64385658 -2987 (-0.00%) 0.26%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_server 49359821 49357785 -2036 (-0.00%) 0.38%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_server 48052861 48051299 -1562 (-0.00%) 0.21%
handshake_no_resume_ring_1.3_ecdsap256_chacha_client 3304309 3304401 92 (0.00%) 0.33%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_client 64588269 64586780 -1489 (-0.00%) 0.53%
handshake_no_resume_ring_1.3_ecdsap256_chacha_server 1291078 1291090 12 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_client 64625007 64625441 434 (0.00%) 0.54%
handshake_no_resume_ring_1.3_ecdsap256_aes_server 1289908 1289904 -4 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_server 49386853 49387000 147 (0.00%) 0.48%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_client 1717565 1717569 4 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_server 7215521 7215530 9 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_server 7213571 7213574 3 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_client 34734686 34734699 13 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_server 46003298 46003289 -9 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_server 46010598 46010590 -8 (-0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_server 45917935 45917928 -7 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_server 80238168 80238178 10 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_client 92531662 92531652 -10 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_server 80249967 80249974 7 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_server 46124481 46124477 -4 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_server 46176463 46176459 -4 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 46186564 46186560 -4 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_client 92529957 92529965 8 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_client 58056748 58056743 -5 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_client 58002604 58002600 -4 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_server 80245476 80245471 -5 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 92579796 92579801 5 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_client 57994747 57994750 3 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 58109678 58109675 -3 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 46176185 46176183 -2 (-0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_server 105032247 105032243 -4 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 80356019 80356022 3 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_client 57900721 57900719 -2 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_client 58005573 58005575 2 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_client 58114379 58114381 2 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_client 34732987 34732986 -1 (-0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_server 104985037 104985034 -3 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_server 46013170 46013169 -1 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_client 92575825 92575823 -2 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_server 80356947 80356946 -1 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 80367037 80367038 1 (0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_client 117341860 117341861 1 (0.00%) 0.20%
handshake_tickets_1.3_no_crypto_server 2067834 2067834 0 (0.00%) 7.35%
handshake_session_id_ring_1.2_rsa_aes_client 4238976 4238976 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_server 31731202 31731202 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 58119643 58119643 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_client 31156330 31156330 0 (0.00%) 0.20%
handshake_session_id_1.2_no_crypto_server 1045011 1045011 0 (0.00%) 3.68%
handshake_no_resume_1.2_no_crypto_server 74657 74657 0 (0.00%) 1.55%
handshake_session_id_ring_1.3_ecdsap384_aes_client 30849601 30849601 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_client 30757951 30757951 0 (0.00%) 0.20%
handshake_no_resume_1.3_no_crypto_client 111577 111577 0 (0.00%) 2.13%
handshake_tickets_ring_1.3_ecdsap256_chacha_client 31080572 31080572 0 (0.00%) 0.20%
handshake_session_id_1.3_no_crypto_server 2103924 2103924 0 (0.00%) 7.17%
handshake_tickets_ring_1.3_rsa_aes_server 32289777 32289777 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_server 31853182 31853182 0 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_server 3744681 3744681 0 (0.00%) 0.20%
handshake_no_resume_1.3_no_crypto_server 98108 98108 0 (0.00%) 3.96%
handshake_session_id_ring_1.3_ecdsap256_aes_server 31853416 31853416 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_client 31149291 31149291 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_client 30764928 30764928 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_server 32188706 32188706 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_client 30856608 30856608 0 (0.00%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_server 4153310 4153310 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_server 32187537 32187537 0 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_server 10987349 10987349 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_server 32290961 32290961 0 (0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_server 4607534 4607534 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_client 31077681 31077681 0 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_server 4878898 4878898 0 (0.00%) 0.20%
handshake_session_id_1.2_no_crypto_client 1151902 1151902 0 (0.00%) 3.19%
handshake_tickets_ring_1.3_ecdsap384_chacha_server 32188721 32188721 0 (0.00%) 0.20%
handshake_tickets_1.3_no_crypto_client 2235008 2235008 0 (0.00%) 4.23%
handshake_tickets_1.2_no_crypto_server 1205351 1205351 0 (0.00%) 2.65%
handshake_tickets_1.2_no_crypto_client 1239584 1239584 0 (0.00%) 2.97%
handshake_session_id_ring_1.3_ecdsap256_chacha_server 31731436 31731436 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_server 32290946 32290946 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_server 11113489 11113489 0 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_client 4164181 4164181 0 (0.00%) 0.50%
handshake_tickets_ring_1.3_rsa_chacha_client 31084675 31084675 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_server 11119250 11119250 0 (0.00%) 0.20%
handshake_session_id_1.3_no_crypto_client 2216462 2216462 0 (0.00%) 4.27%
transfer_no_resume_ring_1.3_ecdsap256_chacha_client 92520834 92520834 0 (0.00%) 0.20%
handshake_no_resume_1.2_no_crypto_client 98536 98536 0 (0.00%) 1.86%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_client 3831857 3831857 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_client 30852750 30852750 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_client 31152227 31152227 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_server 31729747 31729747 0 (0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_client 117294664 117294664 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_client 2330279 2330279 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 92569841 92569841 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_client 30761070 30761070 0 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_client 2243090 2243090 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_server 31851727 31851727 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_client 2335930 2335930 0 (0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_client 4492301 4492301 0 (0.00%) 0.33%

Wall-time

Significant differences

There are no significant wall-time differences

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_1.2_no_crypto 77.38 µs 79.83 µs 2.45 µs (3.16%) 10.51%
handshake_no_resume_1.3_no_crypto 86.06 µs 88.63 µs 2.57 µs (2.98%) 13.24%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes 5.06 ms 5.13 ms 0.07 ms (1.46%) 6.58%
transfer_no_resume_ring_1.3_ecdsap256_aes 5.34 ms 5.41 ms 0.07 ms (1.31%) 6.67%
transfer_no_resume_ring_1.2_rsa_aes 5.76 ms 5.83 ms 0.07 ms (1.26%) 4.24%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes 4.58 ms 4.64 ms 0.06 ms (1.25%) 8.61%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes 5.26 ms 5.33 ms 0.06 ms (1.17%) 7.10%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes 5.28 ms 5.33 ms 0.05 ms (1.03%) 7.01%
transfer_no_resume_ring_1.3_rsa_aes 5.83 ms 5.89 ms 0.06 ms (1.03%) 5.78%
handshake_no_resume_ring_1.3_ecdsap256_chacha 455.90 µs 460.24 µs 4.33 µs (0.95%) 3.21%
transfer_no_resume_ring_1.3_ecdsap384_aes 8.44 ms 8.50 ms 0.07 ms (0.78%) 4.45%
handshake_session_id_1.2_no_crypto 341.05 µs 343.56 µs 2.51 µs (0.74%) 10.10%
handshake_no_resume_ring_1.3_ecdsap256_aes 458.99 µs 462.31 µs 3.31 µs (0.72%) 3.15%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 577.21 µs 581.20 µs 4.00 µs (0.69%) 3.23%
handshake_tickets_1.2_no_crypto 374.95 µs 377.45 µs 2.50 µs (0.67%) 9.75%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes 1.28 ms 1.29 ms 0.01 ms (0.61%) 8.78%
transfer_no_resume_1.2_no_crypto 11.71 ms 11.78 ms 0.07 ms (0.59%) 2.10%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes 578.53 µs 581.90 µs 3.37 µs (0.58%) 3.07%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha 1.26 ms 1.27 ms 0.01 ms (0.52%) 7.51%
transfer_no_resume_ring_1.3_ecdsap256_chacha 12.91 ms 12.97 ms 0.06 ms (0.49%) 2.62%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 13.05 ms 13.12 ms 0.06 ms (0.48%) 2.49%
handshake_tickets_1.3_no_crypto 631.41 µs 634.43 µs 3.02 µs (0.48%) 9.44%
transfer_no_resume_1.3_no_crypto 11.76 ms 11.81 ms 0.05 ms (0.47%) 3.43%
transfer_no_resume_ring_1.3_rsa_chacha 13.39 ms 13.45 ms 0.06 ms (0.46%) 2.67%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 13.74 ms 13.80 ms 0.06 ms (0.43%) 2.38%
handshake_tickets_aws_lc_rs_1.2_rsa_aes 1.80 ms 1.81 ms 0.01 ms (0.41%) 4.51%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha 13.75 ms 13.80 ms 0.06 ms (0.41%) 2.72%
transfer_no_resume_ring_1.3_ecdsap384_chacha 16.00 ms 16.06 ms 0.06 ms (0.40%) 2.28%
handshake_session_id_1.3_no_crypto 654.23 µs 656.82 µs 2.59 µs (0.40%) 8.36%
handshake_no_resume_ring_1.3_rsa_aes 948.61 µs 952.28 µs 3.67 µs (0.39%) 1.65%
handshake_no_resume_ring_1.2_rsa_aes 942.77 µs 946.32 µs 3.54 µs (0.38%) 1.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha 9.28 ms 9.32 ms 0.03 ms (0.36%) 2.19%
handshake_session_id_aws_lc_rs_1.3_rsa_aes 9.20 ms 9.23 ms 0.03 ms (0.35%) 3.05%
handshake_session_id_ring_1.2_rsa_aes 1.47 ms 1.48 ms 0.01 ms (0.35%) 1.82%
handshake_tickets_aws_lc_rs_1.3_rsa_aes 9.34 ms 9.37 ms 0.03 ms (0.34%) 2.33%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha 8.60 ms 8.63 ms 0.03 ms (0.34%) 2.26%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes 8.65 ms 8.68 ms 0.03 ms (0.32%) 2.22%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha 9.31 ms 9.34 ms 0.03 ms (0.29%) 2.62%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha 9.10 ms 9.12 ms 0.03 ms (0.29%) 2.14%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes 1.26 ms 1.27 ms 0.00 ms (0.29%) 1.66%
handshake_session_id_aws_lc_rs_1.2_rsa_aes 1.62 ms 1.62 ms 0.00 ms (0.28%) 5.79%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes 9.33 ms 9.36 ms 0.03 ms (0.28%) 1.74%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes 8.48 ms 8.50 ms 0.02 ms (0.28%) 2.28%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha 9.14 ms 9.16 ms 0.03 ms (0.27%) 2.63%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 1.26 ms 1.26 ms 0.00 ms (0.26%) 1.39%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes 9.16 ms 9.18 ms 0.02 ms (0.26%) 1.88%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes 1.10 ms 1.10 ms 0.00 ms (0.26%) 8.22%
handshake_no_resume_ring_1.3_rsa_chacha 949.73 µs 952.08 µs 2.34 µs (0.25%) 1.73%
handshake_tickets_ring_1.2_rsa_aes 1.55 ms 1.56 ms 0.00 ms (0.22%) 1.36%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha 8.43 ms 8.45 ms 0.02 ms (0.22%) 2.06%
handshake_session_id_ring_1.3_rsa_chacha 5.90 ms 5.91 ms 0.01 ms (0.15%) 1.17%
handshake_tickets_ring_1.3_ecdsap384_aes 8.60 ms 8.61 ms 0.01 ms (0.11%) 1.00%
handshake_session_id_ring_1.3_ecdsap384_chacha 8.49 ms 8.50 ms 0.01 ms (0.11%) 1.28%
handshake_tickets_ring_1.3_rsa_chacha 5.96 ms 5.96 ms 0.01 ms (0.10%) 1.11%
handshake_session_id_ring_1.3_ecdsap384_aes 8.53 ms 8.54 ms 0.01 ms (0.10%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_chacha 8.56 ms 8.57 ms 0.01 ms (0.09%) 1.00%
handshake_tickets_ring_1.3_ecdsap256_aes 5.51 ms 5.51 ms 0.00 ms (0.08%) 1.08%
handshake_tickets_ring_1.3_rsa_aes 6.00 ms 6.00 ms 0.00 ms (0.07%) 1.03%
handshake_no_resume_ring_1.3_ecdsap384_aes 3.56 ms 3.56 ms 0.00 ms (0.06%) 1.00%
handshake_no_resume_ring_1.3_ecdsap384_chacha 3.55 ms 3.56 ms 0.00 ms (0.06%) 1.00%
handshake_tickets_ring_1.3_ecdsap256_chacha 5.47 ms 5.47 ms 0.00 ms (0.05%) 1.46%
handshake_session_id_ring_1.3_ecdsap256_aes 5.45 ms 5.45 ms 0.00 ms (0.05%) 1.29%
handshake_session_id_ring_1.3_rsa_aes 5.94 ms 5.95 ms 0.00 ms (0.03%) 1.00%
handshake_session_id_ring_1.3_ecdsap256_chacha 5.41 ms 5.41 ms 0.00 ms (0.01%) 1.32%

Additional information

Historical results

Checkout details:

Copy link
Member

@cpu cpu left a comment

Choose a reason for hiding this comment

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

Thanks 👍

I agree with ctz's points that the Stream abstraction's applicability is narrow, but having this example maintain symmetry with the simple client example that uses it makes sense.

Tested locally with tlscient-mio (the simpleclient example is too simple to use a non-system root CA without code changes)

$ RUST_LOG=rustls=trace cargo run --package rustls-examples --bin simpleserver -- test-ca/ecdsa-p256/end.fullchain test-ca/ecdsa-p256/end.key
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s
     Running `target/debug/simpleserver test-ca/ecdsa-p256/end.fullchain test-ca/ecdsa-p256/end.key`
Received message from client: [71, 69, 84, 32, 47, 32, 72, 84, 84, 80, 47, 49, 46, 48, 13, 10, 72, 111, 115, 116, 58, 32, 108, 111, 99, 97, 108, 104, 111, 115, 116, 13, 10, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 58, 32, 99, 108, 111, 115, 101, 13, 10, 65, 99, 99, 101, 112, 116, 45, 69, 110, 99, 111, 100]
$ cargo run --package rustls-examples --bin tlsclient-mio -- --http --port 4443 --cafile test-ca/ecdsa-p256/ca.cert localhost
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s
     Running `target/debug/tlsclient-mio --http --port 4443 --cafile test-ca/ecdsa-p256/ca.cert localhost`
Hello from the serverEOF
Connection closed

@ctz ctz added this pull request to the merge queue Jun 25, 2025
Merged via the queue into rustls:main with commit 14f77c2 Jun 25, 2025
34 checks passed
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.

Why is simpleserver example not using rustls::Stream?
3 participants