mozilla / neqo

Neqo, the Mozilla Firefox implementation of QUIC in Rust
https://firefox-source-docs.mozilla.org/networking/http/http3.html
Apache License 2.0
1.85k stars 124 forks source link

chore: Switch to the `windows` crate #2077

Closed larseggert closed 2 months ago

larseggert commented 2 months ago

The winapi crate isn't being updated anymore, and the windows crate is a more modern alternative maintained by Microsoft.

github-actions[bot] commented 2 months ago

Failed Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

codecov[bot] commented 2 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 95.32%. Comparing base (910a7cd) to head (dd0cc47). Report is 1 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #2077 +/- ## ========================================== - Coverage 95.36% 95.32% -0.04% ========================================== Files 112 112 Lines 36505 36505 ========================================== - Hits 34813 34800 -13 - Misses 1692 1705 +13 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 2 months ago

Benchmark results

Performance differences relative to 910a7cd8a87f4c5d052d15f0e10a7e8f1ad21446.

coalesce_acked_from_zero 1+1 entries: Change within noise threshold.
       time:   [99.057 ns 99.342 ns 99.635 ns]
       change: [-1.0813% -0.5838% -0.1056%] (p = 0.02 < 0.05)

Found 11 outliers among 100 measurements (11.00%)
  7 (7.00%) high mild
  4 (4.00%) high severe
coalesce_acked_from_zero 3+1 entries: Change within noise threshold.
       time:   [117.29 ns 117.67 ns 118.10 ns]
       change: [-2.0256% -1.0717% -0.2868%] (p = 0.01 < 0.05)

Found 18 outliers among 100 measurements (18.00%)
  2 (2.00%) low mild
  1 (1.00%) high mild
  15 (15.00%) high severe
coalesce_acked_from_zero 10+1 entries: Change within noise threshold.
       time:   [116.67 ns 117.07 ns 117.56 ns]
       change: [-1.8584% -1.0156% -0.0134%] (p = 0.02 < 0.05)

Found 12 outliers among 100 measurements (12.00%)
  3 (3.00%) low severe
  2 (2.00%) low mild
  3 (3.00%) high mild
  4 (4.00%) high severe
coalesce_acked_from_zero 1000+1 entries: Change within noise threshold.
       time:   [97.337 ns 97.460 ns 97.601 ns]
       change: [-3.0272% -1.8988% -0.7253%] (p = 0.00 < 0.05)

Found 9 outliers among 100 measurements (9.00%)
  2 (2.00%) high mild
  7 (7.00%) high severe
RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [111.31 ms 111.46 ms 111.69 ms]
       change: [-0.4446% -0.2972% -0.0986%] (p = 0.00 < 0.05)

Found 24 outliers among 100 measurements (24.00%)
  3 (3.00%) low severe
  6 (6.00%) low mild
  3 (3.00%) high mild
  12 (12.00%) high severe
transfer/pacing-false/varying-seeds: No change in performance detected.
       time:   [27.208 ms 28.134 ms 29.068 ms]
       change: [-3.2651% +1.6359% +6.8388%] (p = 0.52 > 0.05)

Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild
transfer/pacing-true/varying-seeds: No change in performance detected.
       time:   [34.880 ms 36.515 ms 38.119 ms]
       change: [-4.9125% +1.3596% +7.6687%] (p = 0.68 > 0.05)
transfer/pacing-false/same-seed: No change in performance detected.
       time:   [31.622 ms 32.414 ms 33.173 ms]
       change: [-3.2744% -0.0511% +3.1933%] (p = 0.97 > 0.05)

Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild
transfer/pacing-true/same-seed: No change in performance detected.
       time:   [44.794 ms 47.699 ms 50.602 ms]
       change: [-1.8716% +6.5688% +16.179%] (p = 0.15 > 0.05)
1-conn/1-100mb-resp (aka. Download)/client: :broken_heart: Performance has regressed.
       time:   [115.57 ms 115.99 ms 116.40 ms]
       thrpt:  [859.13 MiB/s 862.13 MiB/s 865.28 MiB/s]
change:
       time:   [+1.0657% +1.5701% +2.0963%] (p = 0.00 < 0.05)
       thrpt:  [-2.0532% -1.5458% -1.0544%]

Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild
1-conn/10_000-parallel-1b-resp (aka. RPS)/client: No change in performance detected.
       time:   [310.40 ms 314.02 ms 317.68 ms]
       thrpt:  [31.478 Kelem/s 31.845 Kelem/s 32.216 Kelem/s]
change:
       time:   [-1.5959% +0.0734% +1.6924%] (p = 0.93 > 0.05)
       thrpt:  [-1.6643% -0.0734% +1.6217%]
1-conn/1-1b-resp (aka. HPS)/client: No change in performance detected.
       time:   [40.340 ms 41.059 ms 41.788 ms]
       thrpt:  [23.930  elem/s 24.355  elem/s 24.789  elem/s]
change:
       time:   [-2.5539% -0.1723% +2.4109%] (p = 0.89 > 0.05)
       thrpt:  [-2.3541% +0.1726% +2.6208%]

Client/server transfer results

Transfer of 33554432 bytes over loopback. Client Server CC Pacing Mean [ms] Min [ms] Max [ms] Relative
msquic msquic 109.3 ± 29.9 83.7 218.7 1.00
neqo msquic reno on 223.8 ± 14.7 205.2 248.6 1.00
neqo msquic reno 231.0 ± 11.9 214.2 253.5 1.00
neqo msquic cubic on 214.7 ± 14.1 203.6 247.2 1.00
neqo msquic cubic 226.9 ± 14.5 203.1 249.6 1.00
msquic neqo reno on 119.6 ± 99.2 75.1 587.2 1.00
msquic neqo reno 86.8 ± 17.6 74.1 154.6 1.00
msquic neqo cubic on 89.7 ± 22.4 74.7 161.1 1.00
msquic neqo cubic 93.5 ± 23.4 73.6 184.4 1.00
neqo neqo reno on 189.0 ± 98.2 128.5 445.8 1.00
neqo neqo reno 157.6 ± 39.1 124.0 303.3 1.00
neqo neqo cubic on 190.3 ± 61.7 124.8 396.1 1.00
neqo neqo cubic 178.4 ± 63.1 122.9 369.7 1.00

:arrow_down: Download logs

mxinden commented 2 months ago

:+1:

For the record, the windows crate also has a safe-to-deploy audit.

https://searchfox.org/mozilla-central/rev/490a1df802d8872f996f8ef4093d54e3c854c8f9/supply-chain/audits.toml#5848-5852

github-actions[bot] commented 2 months ago

Firefox builds for this PR

The following builds are available for testing. Crossed-out builds did not succeed.