Rapport de benchmark · 14 novembre 2026
Pipe, à côté de sept autres clients.
Quatre bancs d’essai (le moteur seul, un Mac, un téléphone Android et un iPhone), 9 protocoles, et le même serveur et le même iperf3 pour tous. Pipe est devant le meilleur des autres clients, ou à égalité avec lui, dans 180 des 204 tests de débit. Il est derrière dans 24 tests, et ils sont tous ici.
180/204
tests de débit devant ou à égalité
1,7×
moins de CPU par gigaoctet que le meilleur des autres moteurs
2,3×
moins de mémoire en pointe que le plus léger des autres moteurs
4,5×
moins de CPU par gigaoctet que la meilleure des autres apps Android
Le résultat, banc par banc
Un test, c’est un protocole, un sens et un nombre de flux parallèles, exécuté pendant dix secondes à travers chaque client à tour de rôle. Pipe est devant quand il bat le meilleur des autres clients de plus de 5 %, à égalité à 5 % près dans un sens ou dans l’autre, et derrière en deçà.
Le débit, test par test
Pipe face au meilleur des autres clients dans chaque test. À égalité, c’est à 5 % près.
- Le moteur n’est jamais derrière. Face à sing-box, Xray et mihomo, il est devant dans 43 tests et à égalité dans les 11 autres, avec 1,7× moins de CPU et 2,3× moins de mémoire que le meilleur d’entre eux.
- Les apps gardent cette avance. Avec le client entier et son tunnel sur le chemin, Pipe est devant Surge Mac et FlClash, ou à égalité avec eux, dans 55 des 60 tests ; de même face à FlClash et Surfboard sur Android, dans 33 des 36.
- Sur l’iPhone, c’est serré. Devant ou à égalité dans 38 des 54 tests : nettement devant Clash ; face à Surge, devant dans la plupart des tests QUIC, VMess et AnyTLS, et en dessous dans la plupart des tests Shadowsocks et VLESS.
Un Mac, en boucle locale · les moteurs seuls
Le moteur
Chaque moteur tourne comme un processus ordinaire, avec un port redirigé en entrée et un protocole en sortie, vers le même serveur à version fixée. Ni tunnel ni app : c’est ce que les cœurs eux-mêmes savent faire, et ce qu’ils dépensent pour le faire.
- Pipe 079ed34f
- sing-box 1.14.4
- Xray 26.11.9
- mihomo 1.19.33
Débit
54/54
devant ou à égalité
43 devant11 à égalité0 derrière1,27× le débit du meilleur des autres clients, en moyenne géométrique
CPU par gigaoctet
52/54
devant ou à égalité
49 devant3 à égalité2 derrière1,74× moins que le meilleur des autres clients, en moyenne géométrique
Mémoire
53/54
devant ou à égalité
51 devant2 à égalité1 derrière2,32× moins que le meilleur des autres clients, en moyenne géométrique
Ce que coûte un gigaoctet
Les secondes CPU que chaque moteur a dépensées pour transporter un GiB, avec huit téléchargements simultanés. Sur un téléphone, c’est de la batterie ; sur n’importe quel appareil, c’est de la chaleur. Pipe dépense 6,11 secondes par GiB sur Hysteria 2, là où les cœurs en Go en dépensent de 26,47 à 34,26, et 8,52 sur WireGuard, là où ils en dépensent de 43,14 à 64,40.
SOCKS5
Shadowsocks
VMess
VLESS
Trojan
AnyTLS
Hysteria 2
TUIC
WireGuard
Ce qu’il occupe
Le pic de mémoire pendant le même test. Pipe n’a pas de ramasse-miettes et emprunte chaque tampon à un seul budget : son empreinte suit donc le travail, 5 MiB sur un seul téléchargement, 11 sur soixante-quatre.
SOCKS5
Shadowsocks
VMess
VLESS
Trojan
AnyTLS
Hysteria 2
TUIC
WireGuard
À quelle vitesse il va
En boucle locale, le serveur plafonne les protocoles les plus rapides sur un seul flux : plusieurs moteurs y affichent donc les mêmes chiffres, et c’est le CPU qui les départage. Avec huit flux, la limite, ce sont les moteurs eux-mêmes, et Pipe transporte 9,1 Gbit/s de Shadowsocks, là où le meilleur des autres en transporte 6,0.
SOCKS5
Shadowsocks
VMess
VLESS
Trojan
AnyTLS
Hysteria 2
TUIC
WireGuard
Tous les tests
Chaque carré est un test : le chiffre de Pipe, et son écart avec celui du meilleur des autres clients. Les flèches indiquent le sens ; le nombre à côté, celui des flux.
devantà égalitéderrière
| Protocole | téléchargement, 1 flux | téléchargement, 8 flux | téléchargement, 64 flux | envoi, 1 flux | envoi, 8 flux | envoi, 64 flux |
|---|---|---|---|---|---|---|
| SOCKS5 | +4%11 194 | +62%10 631 | +2%8 432 | +5%9 907 | +45%9 725 | +5%8 498 |
| Shadowsocks | −3%10 822 | +52%9 074 | −2%7 686 | +12%10 607 | +29%9 050 | +2%7 784 |
| VMess | −3%7 603 | +27%8 791 | +7%7 736 | +11%8 583 | +38%8 519 | +11%7 897 |
| VLESS | +2%7 603 | +42%7 314 | +8%7 510 | +18%8 582 | +30%6 951 | +12%7 700 |
| Trojan | +8%7 564 | +40%7 322 | +7%7 432 | +25%8 658 | +33%7 018 | +8%7 621 |
| AnyTLS | −5%6 501 | +32%6 849 | +3%7 151 | +72%11 663 | +59%8 189 | +11%7 716 |
| Hysteria 2 | +10%1 207 | +85%1 266 | +15%778 | +6%1 901 | ×2,11 847 | ×2,51 840 |
| TUIC | +7%1 217 | +91%1 329 | +35%914 | +3%1 884 | ×2,21 860 | ×2,51 853 |
| WireGuard | +30%764 | +39%762 | +25%690 | +12%1 673 | +33%1 436 | +43%1 498 |
| Protocole | téléchargement, 1 flux | téléchargement, 8 flux | téléchargement, 64 flux | envoi, 1 flux | envoi, 8 flux | envoi, 64 flux |
|---|---|---|---|---|---|---|
| SOCKS5 | −20%0,61 | −48%0,68 | −3%0,56 | −21%0,66 | −42%0,71 | −18%0,45 |
| Shadowsocks | +9%0,82 | −51%1,03 | −7%0,78 | +53%0,72 | −31%0,96 | −14%0,69 |
| VMess | +1%1,18 | −20%1,36 | −1%1,14 | −40%0,67 | −39%1,10 | −10%0,88 |
| VLESS | −14%1,08 | −43%1,20 | −9%0,97 | −53%0,42 | −56%0,86 | −32%0,69 |
| Trojan | −14%1,08 | −34%1,30 | −11%0,96 | −64%0,42 | −53%0,92 | −23%0,70 |
| AnyTLS | −9%1,55 | −38%1,57 | −29%1,10 | −72%0,47 | −56%1,08 | −32%0,77 |
| Hysteria 2 | −56%6,68 | −77%6,11 | −50%14,72 | −31%5,49 | −42%6,04 | −40%5,71 |
| TUIC | −62%6,07 | −79%5,68 | −55%13,35 | −26%5,75 | −44%5,93 | −41%5,58 |
| WireGuard | −78%8,59 | −80%8,52 | −74%12,93 | −60%5,56 | −75%6,46 | −70%5,97 |
| Protocole | téléchargement, 1 flux | téléchargement, 8 flux | téléchargement, 64 flux | envoi, 1 flux | envoi, 8 flux | envoi, 64 flux |
|---|---|---|---|---|---|---|
| SOCKS5 | −71%5 | −67%6 | −50%11 | −69%5 | −67%6 | −50%11 |
| Shadowsocks | −72%5 | −58%8 | −39%19 | −69%5 | −62%7 | −13%20 |
| VMess | −69%6 | −58%9 | −28%22 | −68%6 | −55%9 | −13%27 |
| VLESS | −69%5 | −61%8 | −35%20 | −66%6 | −61%8 | −37%18 |
| Trojan | −69%5 | −62%7 | −40%18 | −65%6 | −59%8 | −37%19 |
| AnyTLS | −68%6 | −54%10 | −38%24 | −70%5 | −60%9 | −36%24 |
| Hysteria 2 | −67%6 | −65%7 | −68%7 | −51%9 | −32%13 | −0%29 |
| TUIC | −67%6 | −66%7 | −68%8 | −50%10 | −43%12 | −1%30 |
| WireGuard | −67%7 | −76%7 | −85%12 | −81%12 | −24%62 | +23%121 |
Tous les chiffres 54 tests × 4 clients
| Test | Pipe | sing-box | Xray | mihomo |
|---|---|---|---|---|
| SOCKS5 ↓ 1 | 11 194 | 7 688 | 10 726 | 10 200 |
| SOCKS5 ↑ 1 | 9 907 | 7 713 | 9 403 | 8 842 |
| SOCKS5 ↓ 8 | 10 631 | 6 522 | 6 581 | 5 511 |
| SOCKS5 ↑ 8 | 9 725 | 6 476 | 6 710 | 6 556 |
| SOCKS5 ↓ 64 | 8 432 | 7 834 | 8 233 | 8 087 |
| SOCKS5 ↑ 64 | 8 498 | 7 705 | 8 099 | 8 117 |
| Shadowsocks ↓ 1 | 10 822 | 10 777 | 10 939 | 11 182 |
| Shadowsocks ↑ 1 | 10 607 | 9 450 | 6 905 | 9 193 |
| Shadowsocks ↓ 8 | 9 074 | 5 261 | 4 902 | 5 958 |
| Shadowsocks ↑ 8 | 9 050 | 6 222 | 5 294 | 6 993 |
| Shadowsocks ↓ 64 | 7 686 | 7 872 | 7 811 | 7 639 |
| Shadowsocks ↑ 64 | 7 784 | 7 325 | 6 121 | 7 625 |
| VMess ↓ 1 | 7 603 | 7 832 | 7 400 | 7 818 |
| VMess ↑ 1 | 8 583 | 7 754 | 4 998 | 6 985 |
| VMess ↓ 8 | 8 791 | 5 570 | 6 942 | 6 315 |
| VMess ↑ 8 | 8 519 | 5 578 | 4 719 | 6 185 |
| VMess ↓ 64 | 7 736 | 6 696 | 7 207 | 7 207 |
| VMess ↑ 64 | 7 897 | 7 079 | 6 043 | 7 116 |
| VLESS ↓ 1 | 7 603 | 7 452 | 6 723 | 7 049 |
| VLESS ↑ 1 | 8 582 | 7 001 | 7 279 | 6 869 |
| VLESS ↓ 8 | 7 314 | 5 148 | 4 629 | 5 163 |
| VLESS ↑ 8 | 6 951 | 5 124 | 4 891 | 5 332 |
| VLESS ↓ 64 | 7 510 | 6 825 | 6 335 | 6 961 |
| VLESS ↑ 64 | 7 700 | 6 840 | 6 205 | 6 867 |
| Trojan ↓ 1 | 7 564 | 7 023 | 6 738 | 6 967 |
| Trojan ↑ 1 | 8 658 | 6 926 | 6 870 | 6 816 |
| Trojan ↓ 8 | 7 322 | 5 121 | 4 603 | 5 221 |
| Trojan ↑ 8 | 7 018 | 5 122 | 4 929 | 5 295 |
| Trojan ↓ 64 | 7 432 | 6 929 | 6 574 | 6 182 |
| Trojan ↑ 64 | 7 621 | 6 477 | 6 386 | 7 033 |
| AnyTLS ↓ 1 | 6 501 | 6 826 | — | 6 580 |
| AnyTLS ↑ 1 | 11 663 | 6 763 | — | 5 973 |
| AnyTLS ↓ 8 | 6 849 | 5 182 | — | 4 936 |
| AnyTLS ↑ 8 | 8 189 | 5 150 | — | 4 779 |
| AnyTLS ↓ 64 | 7 151 | 6 961 | — | 6 743 |
| AnyTLS ↑ 64 | 7 716 | 6 948 | — | 6 642 |
| Hysteria 2 ↓ 1 | 1 207 | 1 098 | 983 | 991 |
| Hysteria 2 ↑ 1 | 1 901 | 1 796 | 716 | 733 |
| Hysteria 2 ↓ 8 | 1 266 | 685 | 681 | 684 |
| Hysteria 2 ↑ 8 | 1 847 | 879 | 620 | 652 |
| Hysteria 2 ↓ 64 | 778 | 674 | 664 | 670 |
| Hysteria 2 ↑ 64 | 1 840 | 742 | 604 | 624 |
| TUIC ↓ 1 | 1 217 | 1 135 | — | 999 |
| TUIC ↑ 1 | 1 884 | 1 836 | — | 732 |
| TUIC ↓ 8 | 1 329 | 697 | — | 674 |
| TUIC ↑ 8 | 1 860 | 852 | — | 659 |
| TUIC ↓ 64 | 914 | 678 | — | 674 |
| TUIC ↑ 64 | 1 853 | 741 | — | 636 |
| WireGuard ↓ 1 | 764 | 555 | 507 | 589 |
| WireGuard ↑ 1 | 1 673 | 1 258 | 626 | 1 500 |
| WireGuard ↓ 8 | 762 | 489 | 427 | 549 |
| WireGuard ↑ 8 | 1 436 | 1 080 | 499 | 440 |
| WireGuard ↓ 64 | 690 | 498 | échec | 552 |
| WireGuard ↑ 64 | 1 498 | 1 046 | 495 | 286 |
| Test | Pipe | sing-box | Xray | mihomo |
|---|---|---|---|---|
| SOCKS5 ↓ 1 | 0,61 | 1,01 | 0,76 | 0,81 |
| SOCKS5 ↑ 1 | 0,66 | 0,90 | 0,84 | 0,88 |
| SOCKS5 ↓ 8 | 0,68 | 1,30 | 1,53 | 1,60 |
| SOCKS5 ↑ 8 | 0,71 | 1,26 | 1,31 | 1,23 |
| SOCKS5 ↓ 64 | 0,56 | 0,58 | 0,75 | 0,77 |
| SOCKS5 ↑ 64 | 0,45 | 0,58 | 0,55 | 0,68 |
| Shadowsocks ↓ 1 | 0,82 | 0,75 | 0,85 | 1,53 |
| Shadowsocks ↑ 1 | 0,72 | 0,47 | 0,68 | 0,88 |
| Shadowsocks ↓ 8 | 1,03 | 2,09 | 2,11 | 2,22 |
| Shadowsocks ↑ 8 | 0,96 | 1,61 | 1,54 | 1,40 |
| Shadowsocks ↓ 64 | 0,78 | 0,84 | 0,89 | 1,52 |
| Shadowsocks ↑ 64 | 0,69 | 0,87 | 1,05 | 0,80 |
| VMess ↓ 1 | 1,18 | 1,17 | 1,59 | 1,26 |
| VMess ↑ 1 | 0,67 | 1,23 | 1,89 | 1,11 |
| VMess ↓ 8 | 1,36 | 1,97 | 1,69 | 1,92 |
| VMess ↑ 8 | 1,10 | 1,90 | 2,35 | 1,79 |
| VMess ↓ 64 | 1,14 | 1,15 | 1,24 | 1,16 |
| VMess ↑ 64 | 0,88 | 0,98 | 1,43 | 1,18 |
| VLESS ↓ 1 | 1,08 | 1,27 | 1,31 | 1,26 |
| VLESS ↑ 1 | 0,42 | 1,44 | 0,90 | 1,47 |
| VLESS ↓ 8 | 1,20 | 2,12 | 2,11 | 2,13 |
| VLESS ↑ 8 | 0,86 | 2,13 | 1,95 | 2,06 |
| VLESS ↓ 64 | 0,97 | 1,13 | 1,19 | 1,07 |
| VLESS ↑ 64 | 0,69 | 1,02 | 1,09 | 1,01 |
| Trojan ↓ 1 | 1,08 | 1,26 | 1,32 | 1,26 |
| Trojan ↑ 1 | 0,42 | 1,33 | 1,18 | 1,47 |
| Trojan ↓ 8 | 1,30 | 1,96 | 2,33 | 2,11 |
| Trojan ↑ 8 | 0,92 | 2,12 | 1,95 | 2,06 |
| Trojan ↓ 64 | 0,96 | 1,08 | 1,19 | 1,23 |
| Trojan ↑ 64 | 0,70 | 0,97 | 1,05 | 0,91 |
| AnyTLS ↓ 1 | 1,55 | 1,71 | — | 1,82 |
| AnyTLS ↑ 1 | 0,47 | 1,65 | — | 1,66 |
| AnyTLS ↓ 8 | 1,57 | 2,55 | — | 2,99 |
| AnyTLS ↑ 8 | 1,08 | 2,48 | — | 2,64 |
| AnyTLS ↓ 64 | 1,10 | 1,54 | — | 1,78 |
| AnyTLS ↑ 64 | 0,77 | 1,14 | — | 1,15 |
| Hysteria 2 ↓ 1 | 6,68 | 15,20 | 23,58 | 23,39 |
| Hysteria 2 ↑ 1 | 5,49 | 7,91 | 28,56 | 27,60 |
| Hysteria 2 ↓ 8 | 6,11 | 26,47 | 34,26 | 33,67 |
| Hysteria 2 ↑ 8 | 6,04 | 10,49 | 22,98 | 22,14 |
| Hysteria 2 ↓ 64 | 14,72 | 29,69 | 35,07 | 34,40 |
| Hysteria 2 ↑ 64 | 5,71 | 9,58 | 22,75 | 19,89 |
| TUIC ↓ 1 | 6,07 | 16,11 | — | 25,17 |
| TUIC ↑ 1 | 5,75 | 7,78 | — | 25,57 |
| TUIC ↓ 8 | 5,68 | 26,46 | — | 33,97 |
| TUIC ↑ 8 | 5,93 | 10,58 | — | 24,32 |
| TUIC ↓ 64 | 13,35 | 29,40 | — | 31,51 |
| TUIC ↑ 64 | 5,58 | 9,50 | — | 19,34 |
| WireGuard ↓ 1 | 8,59 | 41,36 | 50,25 | 39,56 |
| WireGuard ↑ 1 | 5,56 | 26,85 | 32,18 | 13,79 |
| WireGuard ↓ 8 | 8,52 | 51,46 | 64,40 | 43,14 |
| WireGuard ↑ 8 | 6,46 | 25,80 | 47,59 | 40,18 |
| WireGuard ↓ 64 | 12,93 | 49,61 | échec | 49,14 |
| WireGuard ↑ 64 | 5,97 | 19,62 | 37,29 | 42,28 |
| Test | Pipe | sing-box | Xray | mihomo |
|---|---|---|---|---|
| SOCKS5 ↓ 1 | 5 | 20 | 16 | 19 |
| SOCKS5 ↑ 1 | 5 | 19 | 16 | 18 |
| SOCKS5 ↓ 8 | 6 | 26 | 17 | 19 |
| SOCKS5 ↑ 8 | 6 | 27 | 18 | 19 |
| SOCKS5 ↓ 64 | 11 | 66 | 26 | 21 |
| SOCKS5 ↑ 64 | 11 | 65 | 28 | 22 |
| Shadowsocks ↓ 1 | 5 | 18 | 17 | 21 |
| Shadowsocks ↑ 1 | 5 | 18 | 16 | 17 |
| Shadowsocks ↓ 8 | 8 | 23 | 19 | 40 |
| Shadowsocks ↑ 8 | 7 | 21 | 19 | 18 |
| Shadowsocks ↓ 64 | 19 | 32 | 42 | 31 |
| Shadowsocks ↑ 64 | 20 | 31 | 34 | 23 |
| VMess ↓ 1 | 6 | 18 | 18 | 19 |
| VMess ↑ 1 | 6 | 17 | 18 | 19 |
| VMess ↓ 8 | 9 | 22 | 21 | 21 |
| VMess ↑ 8 | 9 | 21 | 20 | 21 |
| VMess ↓ 64 | 22 | 35 | 33 | 30 |
| VMess ↑ 64 | 27 | 31 | 35 | 34 |
| VLESS ↓ 1 | 5 | 18 | 17 | 18 |
| VLESS ↑ 1 | 6 | 17 | 17 | 19 |
| VLESS ↓ 8 | 8 | 22 | 19 | 20 |
| VLESS ↑ 8 | 8 | 20 | 20 | 20 |
| VLESS ↓ 64 | 20 | 37 | 33 | 30 |
| VLESS ↑ 64 | 18 | 30 | 33 | 28 |
| Trojan ↓ 1 | 5 | 19 | 17 | 18 |
| Trojan ↑ 1 | 6 | 17 | 17 | 18 |
| Trojan ↓ 8 | 7 | 21 | 19 | 20 |
| Trojan ↑ 8 | 8 | 21 | 19 | 20 |
| Trojan ↓ 64 | 18 | 34 | 32 | 30 |
| Trojan ↑ 64 | 19 | 31 | 34 | 30 |
| AnyTLS ↓ 1 | 6 | 19 | — | 19 |
| AnyTLS ↑ 1 | 5 | 18 | — | 18 |
| AnyTLS ↓ 8 | 10 | 23 | — | 22 |
| AnyTLS ↑ 8 | 9 | 25 | — | 23 |
| AnyTLS ↓ 64 | 24 | 44 | — | 38 |
| AnyTLS ↑ 64 | 24 | 42 | — | 38 |
| Hysteria 2 ↓ 1 | 6 | 21 | 19 | 20 |
| Hysteria 2 ↑ 1 | 9 | 22 | 19 | 19 |
| Hysteria 2 ↓ 8 | 7 | 22 | 19 | 21 |
| Hysteria 2 ↑ 8 | 13 | 23 | 20 | 21 |
| Hysteria 2 ↓ 64 | 7 | 30 | 22 | 25 |
| Hysteria 2 ↑ 64 | 29 | 36 | 29 | 30 |
| TUIC ↓ 1 | 6 | 21 | — | 19 |
| TUIC ↑ 1 | 10 | 21 | — | 20 |
| TUIC ↓ 8 | 7 | 22 | — | 20 |
| TUIC ↑ 8 | 12 | 22 | — | 21 |
| TUIC ↓ 64 | 8 | 30 | — | 26 |
| TUIC ↑ 64 | 30 | 34 | — | 30 |
| WireGuard ↓ 1 | 7 | 56 | 22 | 37 |
| WireGuard ↑ 1 | 12 | 154 | 59 | 213 |
| WireGuard ↓ 8 | 7 | 120 | 30 | 70 |
| WireGuard ↑ 8 | 62 | 182 | 155 | 81 |
| WireGuard ↓ 64 | 12 | 131 | échec | 81 |
| WireGuard ↑ 64 | 121 | 332 | 241 | 98 |
Une machine virtuelle macOS 27 vers son hôte · l’app entière, tunnel activé
App Mac
Chaque app telle qu’elle est livrée, en mode Règle avec son tunnel activé, l’une après l’autre dans la même machine virtuelle. La première ligne, Direct, c’est le tunnel sans proxy derrière lui : ce que l’app elle-même coûte à chaque connexion.
- Pipe 079ed34f
- Surge Mac 6.12.0
- FlClash 0.9.3
Débit
55/60
devant ou à égalité
46 devant9 à égalité5 derrière1,28× le débit du meilleur des autres clients, en moyenne géométrique
Par son tunnel seul, Pipe fait passer 13,8 Gbit/s sur un téléchargement ; Surge Mac en fait passer 7,0 et FlClash 10,5. Avec huit téléchargements à travers un proxy, il transporte 10,8 Gbit/s de Trojan, là où le meilleur des autres en transporte 7,3. Surge Mac n’accepte pas de proxy VLESS, et son WireGuard n’a terminé aucune exécution sur ce banc.
Direct
SOCKS5
Shadowsocks
VMess
VLESS
Trojan
AnyTLS
Hysteria 2
TUIC
WireGuard
Tous les tests
| Protocole | téléchargement, 1 flux | téléchargement, 8 flux | téléchargement, 64 flux | envoi, 1 flux | envoi, 8 flux | envoi, 64 flux |
|---|---|---|---|---|---|---|
| Direct | +31%13 805 | +30%10 279 | +41%8 780 | +11%14 988 | +27%13 996 | +11%10 391 |
| SOCKS5 | +7%11 131 | +55%11 354 | +99%10 561 | +1%11 189 | +7%9 749 | +5%6 526 |
| Shadowsocks | +14%10 743 | +59%10 936 | +87%10 369 | −14%9 336 | +8%9 315 | +3%6 430 |
| VMess | −10%6 787 | +58%10 454 | ×2,49 312 | +6%6 030 | +7%7 875 | −5%5 237 |
| VLESS | +11%10 213 | +66%10 463 | ×2,69 907 | +93%5 921 | +18%7 549 | +29%5 467 |
| Trojan | +11%10 258 | +47%10 756 | +96%10 029 | −8%5 998 | +2%7 655 | −5%5 451 |
| AnyTLS | +25%8 390 | +46%10 338 | +74%9 559 | −6%8 397 | +4%8 464 | +6%6 137 |
| Hysteria 2 | +24%1 290 | +67%1 356 | +50%1 087 | +3%1 435 | +5%1 431 | ×2,71 276 |
| TUIC | +26%1 317 | +61%1 364 | +39%1 032 | −3%1 423 | +2%1 398 | +72%1 411 |
| WireGuard | +15%619 | +8%658 | +6%639 | +3%1 324 | +24%1 378 | +86%1 352 |
Tous les chiffres 60 tests × 3 clients
| Test | Pipe | Surge Mac | FlClash |
|---|---|---|---|
| Direct ↓ 1 | 13 805 | 6 960 | 10 505 |
| Direct ↑ 1 | 14 988 | 13 466 | 8 284 |
| Direct ↓ 8 | 10 279 | 6 625 | 7 888 |
| Direct ↑ 8 | 13 996 | 10 982 | 9 800 |
| Direct ↓ 64 | 8 780 | 5 606 | 6 229 |
| Direct ↑ 64 | 10 391 | 9 367 | 5 953 |
| SOCKS5 ↓ 1 | 11 131 | 6 073 | 10 441 |
| SOCKS5 ↑ 1 | 11 189 | 11 069 | 7 062 |
| SOCKS5 ↓ 8 | 11 354 | 5 858 | 7 313 |
| SOCKS5 ↑ 8 | 9 749 | 9 090 | 7 246 |
| SOCKS5 ↓ 64 | 10 561 | 5 101 | 5 296 |
| SOCKS5 ↑ 64 | 6 526 | 6 191 | 5 052 |
| Shadowsocks ↓ 1 | 10 743 | 6 126 | 9 394 |
| Shadowsocks ↑ 1 | 9 336 | 10 862 | 5 141 |
| Shadowsocks ↓ 8 | 10 936 | 5 753 | 6 897 |
| Shadowsocks ↑ 8 | 9 315 | 8 595 | 7 159 |
| Shadowsocks ↓ 64 | 10 369 | 5 533 | 5 247 |
| Shadowsocks ↑ 64 | 6 430 | 6 238 | 4 216 |
| VMess ↓ 1 | 6 787 | 6 041 | 7 523 |
| VMess ↑ 1 | 6 030 | 5 664 | 1 414 |
| VMess ↓ 8 | 10 454 | 5 672 | 6 599 |
| VMess ↑ 8 | 7 875 | 7 371 | 6 641 |
| VMess ↓ 64 | 9 312 | échec | 3 845 |
| VMess ↑ 64 | 5 237 | 5 535 | 4 225 |
| VLESS ↓ 1 | 10 213 | — | 9 175 |
| VLESS ↑ 1 | 5 921 | — | 3 065 |
| VLESS ↓ 8 | 10 463 | — | 6 311 |
| VLESS ↑ 8 | 7 549 | — | 6 374 |
| VLESS ↓ 64 | 9 907 | — | 3 747 |
| VLESS ↑ 64 | 5 467 | — | 4 232 |
| Trojan ↓ 1 | 10 258 | 5 935 | 9 221 |
| Trojan ↑ 1 | 5 998 | 6 499 | 3 140 |
| Trojan ↓ 8 | 10 756 | 5 707 | 7 327 |
| Trojan ↑ 8 | 7 655 | 7 499 | 6 388 |
| Trojan ↓ 64 | 10 029 | échec | 5 127 |
| Trojan ↑ 64 | 5 451 | 5 726 | 4 135 |
| AnyTLS ↓ 1 | 8 390 | 5 860 | 6 698 |
| AnyTLS ↑ 1 | 8 397 | 8 929 | 1 639 |
| AnyTLS ↓ 8 | 10 338 | 4 741 | 7 086 |
| AnyTLS ↑ 8 | 8 464 | 8 120 | 7 355 |
| AnyTLS ↓ 64 | 9 559 | échec | 5 503 |
| AnyTLS ↑ 64 | 6 137 | 5 791 | 5 261 |
| Hysteria 2 ↓ 1 | 1 290 | 1 042 | 794 |
| Hysteria 2 ↑ 1 | 1 435 | 1 388 | 296 |
| Hysteria 2 ↓ 8 | 1 356 | 814 | 813 |
| Hysteria 2 ↑ 8 | 1 431 | 1 360 | 470 |
| Hysteria 2 ↓ 64 | 1 087 | 417 | 725 |
| Hysteria 2 ↑ 64 | 1 276 | échec | 477 |
| TUIC ↓ 1 | 1 317 | 1 044 | 868 |
| TUIC ↑ 1 | 1 423 | 1 466 | 298 |
| TUIC ↓ 8 | 1 364 | 848 | 811 |
| TUIC ↑ 8 | 1 398 | 1 365 | 446 |
| TUIC ↓ 64 | 1 032 | 399 | 745 |
| TUIC ↑ 64 | 1 411 | échec | 820 |
| WireGuard ↓ 1 | 619 | échec | 539 |
| WireGuard ↑ 1 | 1 324 | échec | 1 283 |
| WireGuard ↓ 8 | 658 | échec | 609 |
| WireGuard ↑ 8 | 1 378 | échec | 1 111 |
| WireGuard ↓ 64 | 639 | échec | 605 |
| WireGuard ↑ 64 | 1 352 | échec | 725 |
Galaxy S25 Edge, Android 17 · câble USB vers un Mac
App Android
Ici, la liaison est adb sur le câble, qui transporte quelque 2 à 2,8 Gbit/s de TCP et rien d’autre : la plupart des tests l’atteignent, si bien que le débit ne dit souvent que « pas plus lent ». Ce qui départage les clients, c’est ce que le téléphone dépense, et là, aucun test n’est serré.
- Pipe aa6b8acf
- FlClash 0.9.3
- Surfboard 2.35.2
Débit
33/36
devant ou à égalité
23 devant10 à égalité3 derrière1,34× le débit du meilleur des autres clients, en moyenne géométrique
CPU par gigaoctet
36/36
devant ou à égalité
36 devant0 à égalité0 derrière4,45× moins que le meilleur des autres clients, en moyenne géométrique
Mémoire
36/36
devant ou à égalité
36 devant0 à égalité0 derrière1,69× moins que le meilleur des autres clients, en moyenne géométrique
Pipe dépense de 1,0 à 2,6 secondes CPU par GiB, quel que soit le protocole. FlClash et Surfboard en dépensent de 2,8 à 34,6, et sur Shadowsocks et VMess un flux unique à travers l’un ou l’autre transporte moins de la moitié de ce que transporte Pipe. Les processus de Pipe occupent de 168 à 201 MiB ; ceux des autres, de 236 à 523.
SOCKS5
Shadowsocks
VMess
VLESS
Trojan
AnyTLS
Tous les tests
| Protocole | téléchargement, 1 flux | téléchargement, 8 flux | téléchargement, 64 flux | envoi, 1 flux | envoi, 8 flux | envoi, 64 flux |
|---|---|---|---|---|---|---|
| SOCKS5 | −3%2 471 | +2%3 089 | −8%2 276 | +19%2 765 | +2%2 792 | +2%2 794 |
| Shadowsocks | ×2,52 590 | +10%2 795 | −28%1 858 | ×3,12 668 | +10%2 715 | +19%2 731 |
| VMess | ×4,62 454 | +12%2 649 | ×2,32 618 | ×2,32 055 | +11%2 687 | +17%2 696 |
| VLESS | +22%2 566 | +18%2 762 | ×2,22 779 | ×3,72 687 | +4%2 732 | +5%2 717 |
| Trojan | +15%2 574 | −9%2 765 | ×2,02 765 | +35%2 676 | +3%2 733 | +3%2 732 |
| AnyTLS | +3%2 606 | +1%3 071 | ×2,53 132 | +26%2 669 | +7%2 697 | +2%2 720 |
| Protocole | téléchargement, 1 flux | téléchargement, 8 flux | téléchargement, 64 flux | envoi, 1 flux | envoi, 8 flux | envoi, 64 flux |
|---|---|---|---|---|---|---|
| SOCKS5 | −69%1,13 | −68%1,04 | −71%1,06 | −67%1,06 | −59%1,13 | −59%1,27 |
| Shadowsocks | −87%1,79 | −90%1,70 | −90%1,58 | −89%1,48 | −90%1,55 | −90%1,74 |
| VMess | −92%2,18 | −89%2,23 | −89%2,62 | −81%2,43 | −88%1,94 | −90%2,02 |
| VLESS | −70%1,69 | −70%1,92 | −70%1,87 | −80%1,49 | −68%1,56 | −66%1,66 |
| Trojan | −72%1,69 | −69%1,77 | −68%1,93 | −71%1,63 | −67%1,63 | −68%1,65 |
| AnyTLS | −67%2,15 | −59%2,12 | −62%2,31 | −71%1,57 | −69%1,62 | −67%1,74 |
Tous les chiffres 36 tests × 3 clients
| Test | Pipe | FlClash | Surfboard |
|---|---|---|---|
| SOCKS5 ↓ 1 | 2 471 | 2 550 | 2 427 |
| SOCKS5 ↑ 1 | 2 765 | 2 319 | 2 066 |
| SOCKS5 ↓ 8 | 3 089 | 3 031 | 2 971 |
| SOCKS5 ↑ 8 | 2 792 | 2 748 | 2 664 |
| SOCKS5 ↓ 64 | 2 276 | 2 474 | 1 380 |
| SOCKS5 ↑ 64 | 2 794 | 2 688 | 2 744 |
| Shadowsocks ↓ 1 | 2 590 | 648 | 1 040 |
| Shadowsocks ↑ 1 | 2 668 | 312 | 870 |
| Shadowsocks ↓ 8 | 2 795 | 2 392 | 2 530 |
| Shadowsocks ↑ 8 | 2 715 | 2 083 | 2 476 |
| Shadowsocks ↓ 64 | 1 858 | 1 040 | 2 571 |
| Shadowsocks ↑ 64 | 2 731 | 1 856 | 2 304 |
| VMess ↓ 1 | 2 454 | 524 | 536 |
| VMess ↑ 1 | 2 055 | 312 | 895 |
| VMess ↓ 8 | 2 649 | 2 371 | 1 655 |
| VMess ↑ 8 | 2 687 | 1 986 | 2 429 |
| VMess ↓ 64 | 2 618 | 697 | 1 157 |
| VMess ↑ 64 | 2 696 | 1 730 | 2 311 |
| VLESS ↓ 1 | 2 566 | 2 109 | — |
| VLESS ↑ 1 | 2 687 | 723 | — |
| VLESS ↓ 8 | 2 762 | 2 337 | — |
| VLESS ↑ 8 | 2 732 | 2 633 | — |
| VLESS ↓ 64 | 2 779 | 1 289 | — |
| VLESS ↑ 64 | 2 717 | 2 579 | — |
| Trojan ↓ 1 | 2 574 | 2 129 | 2 244 |
| Trojan ↑ 1 | 2 676 | 741 | 1 983 |
| Trojan ↓ 8 | 2 765 | 2 321 | 3 023 |
| Trojan ↑ 8 | 2 733 | 2 650 | 2 540 |
| Trojan ↓ 64 | 2 765 | 1 281 | 1 349 |
| Trojan ↑ 64 | 2 732 | 2 578 | 2 656 |
| AnyTLS ↓ 1 | 2 606 | 2 529 | 1 901 |
| AnyTLS ↑ 1 | 2 669 | 559 | 2 111 |
| AnyTLS ↓ 8 | 3 071 | 3 046 | 3 029 |
| AnyTLS ↑ 8 | 2 697 | 2 515 | 2 481 |
| AnyTLS ↓ 64 | 3 132 | 1 266 | 1 210 |
| AnyTLS ↑ 64 | 2 720 | 2 517 | 2 659 |
| Test | Pipe | FlClash | Surfboard |
|---|---|---|---|
| SOCKS5 ↓ 1 | 1,13 | 3,72 | 3,65 |
| SOCKS5 ↑ 1 | 1,06 | 3,45 | 3,21 |
| SOCKS5 ↓ 8 | 1,04 | 3,71 | 3,22 |
| SOCKS5 ↑ 8 | 1,13 | 3,12 | 2,78 |
| SOCKS5 ↓ 64 | 1,06 | 3,66 | 5,26 |
| SOCKS5 ↑ 64 | 1,27 | 3,11 | 3,86 |
| Shadowsocks ↓ 1 | 1,79 | 20,53 | 14,00 |
| Shadowsocks ↑ 1 | 1,48 | 25,92 | 13,45 |
| Shadowsocks ↓ 8 | 1,70 | 20,88 | 16,51 |
| Shadowsocks ↑ 8 | 1,55 | 26,13 | 15,42 |
| Shadowsocks ↓ 64 | 1,58 | 34,61 | 15,55 |
| Shadowsocks ↑ 64 | 1,74 | 24,42 | 16,60 |
| VMess ↓ 1 | 2,18 | 27,80 | 25,86 |
| VMess ↑ 1 | 2,43 | 26,22 | 13,10 |
| VMess ↓ 8 | 2,23 | 22,67 | 20,54 |
| VMess ↑ 8 | 1,94 | 25,89 | 16,65 |
| VMess ↓ 64 | 2,62 | 29,01 | 22,89 |
| VMess ↑ 64 | 2,02 | 29,35 | 19,59 |
| VLESS ↓ 1 | 1,69 | 5,65 | — |
| VLESS ↑ 1 | 1,49 | 7,31 | — |
| VLESS ↓ 8 | 1,92 | 6,30 | — |
| VLESS ↑ 8 | 1,56 | 4,95 | — |
| VLESS ↓ 64 | 1,87 | 6,20 | — |
| VLESS ↑ 64 | 1,66 | 4,92 | — |
| Trojan ↓ 1 | 1,69 | 5,98 | 8,56 |
| Trojan ↑ 1 | 1,63 | 7,21 | 5,67 |
| Trojan ↓ 8 | 1,77 | 5,78 | 7,31 |
| Trojan ↑ 8 | 1,63 | 5,00 | 4,94 |
| Trojan ↓ 64 | 1,93 | 5,96 | 9,37 |
| Trojan ↑ 64 | 1,65 | 5,15 | 6,41 |
| AnyTLS ↓ 1 | 2,15 | 6,51 | 9,57 |
| AnyTLS ↑ 1 | 1,57 | 8,08 | 5,34 |
| AnyTLS ↓ 8 | 2,12 | 5,12 | 7,87 |
| AnyTLS ↑ 8 | 1,62 | 5,26 | 5,22 |
| AnyTLS ↓ 64 | 2,31 | 6,14 | 11,49 |
| AnyTLS ↑ 64 | 1,74 | 5,29 | 6,18 |
| Test | Pipe | FlClash | Surfboard |
|---|---|---|---|
| SOCKS5 ↓ 1 | 185 | 487 | 259 |
| SOCKS5 ↑ 1 | 201 | 453 | 244 |
| SOCKS5 ↓ 8 | 170 | 453 | 248 |
| SOCKS5 ↑ 8 | 178 | 454 | 236 |
| SOCKS5 ↓ 64 | 181 | 455 | 246 |
| SOCKS5 ↑ 64 | 177 | 521 | 276 |
| Shadowsocks ↓ 1 | 174 | 510 | 275 |
| Shadowsocks ↑ 1 | 176 | 522 | 268 |
| Shadowsocks ↓ 8 | 169 | 522 | 271 |
| Shadowsocks ↑ 8 | 168 | 522 | 274 |
| Shadowsocks ↓ 64 | 170 | 523 | 251 |
| Shadowsocks ↑ 64 | 179 | 498 | 254 |
| VMess ↓ 1 | 175 | 496 | 286 |
| VMess ↑ 1 | 171 | 498 | 293 |
| VMess ↓ 8 | 173 | 499 | 282 |
| VMess ↑ 8 | 177 | 499 | 284 |
| VMess ↓ 64 | 178 | 499 | 289 |
| VMess ↑ 64 | 193 | 493 | 293 |
| VLESS ↓ 1 | 175 | 492 | — |
| VLESS ↑ 1 | 177 | 494 | — |
| VLESS ↓ 8 | 180 | 494 | — |
| VLESS ↑ 8 | 183 | 494 | — |
| VLESS ↓ 64 | 171 | 495 | — |
| VLESS ↑ 64 | 181 | 490 | — |
| Trojan ↓ 1 | 180 | 493 | 284 |
| Trojan ↑ 1 | 183 | 491 | 288 |
| Trojan ↓ 8 | 173 | 491 | 290 |
| Trojan ↑ 8 | 172 | 491 | 293 |
| Trojan ↓ 64 | 173 | 492 | 284 |
| Trojan ↑ 64 | 187 | 496 | 279 |
| AnyTLS ↓ 1 | 175 | 502 | 273 |
| AnyTLS ↑ 1 | 176 | 497 | 276 |
| AnyTLS ↓ 8 | 178 | 497 | 279 |
| AnyTLS ↑ 8 | 181 | 497 | 281 |
| AnyTLS ↓ 64 | 185 | 498 | 273 |
| AnyTLS ↑ 64 | 193 | 506 | 270 |
iPhone 15 Pro, iOS 27.2 · câble USB vers un Mac
App iPhone
Le banc le plus difficile à lire. Un iPhone accorde à un tunnel un seul petit processus et environ 50 MiB, un envoi unique se limite à un cœur à haute efficacité énergétique, quel que soit le client, et un téléphone qui a chauffé transporte un tiers de moins qu’un téléphone reposé. Chaque client a eu une seule passe.
- Pipe aa6b8acf
- Surge 6.100.0
- Clash 1.0.9
Débit
38/54
devant ou à égalité
27 devant11 à égalité16 derrière1,12× le débit du meilleur des autres clients, en moyenne géométrique
Face à Surge, Pipe est devant dans la plupart des tests VMess, AnyTLS, Hysteria 2 et TUIC, devant ou à égalité dans cinq des six tests Trojan, au coude-à-coude sur SOCKS5, et en dessous dans la plupart des tests Shadowsocks et VLESS. Face à Clash, il est devant dans tous les tests que les deux ont terminés, sauf les téléchargements WireGuard, où il est derrière d’environ un dixième. Le WireGuard de Surge n’a terminé aucune exécution, et l’extension de Clash s’est arrêtée à soixante-quatre flux VMess et VLESS, si bien que ses tests Trojan et AnyTLS n’ont pas pu être lancés.
Tous les tests
| Protocole | téléchargement, 1 flux | téléchargement, 8 flux | téléchargement, 64 flux | envoi, 1 flux | envoi, 8 flux | envoi, 64 flux |
|---|---|---|---|---|---|---|
| SOCKS5 | +1%5 486 | +6%6 139 | +6%5 203 | −6%1 795 | −5%4 285 | −2%3 360 |
| Shadowsocks | −5%4 396 | −9%3 648 | −5%2 907 | +2%1 776 | −4%2 498 | −7%2 463 |
| VMess | +21%3 655 | +14%3 884 | +22%3 460 | +14%1 852 | −18%2 232 | +1%2 357 |
| VLESS | +4%4 196 | −11%5 663 | −6%4 572 | −30%1 181 | −4%3 889 | −13%2 690 |
| Trojan | +10%3 919 | +3%4 029 | −9%3 124 | +11%1 807 | +5%2 799 | −2%2 466 |
| AnyTLS | +50%4 201 | +3%3 748 | +25%1 815 | +20%1 823 | +6%2 520 | +24%3 261 |
| Hysteria 2 | −9%1 308 | +9%1 277 | ×2,31 433 | +13%1 488 | +9%1 451 | +12%1 439 |
| TUIC | −5%1 296 | +41%1 410 | ×2,91 533 | +25%1 458 | +17%1 431 | +16%1 366 |
| WireGuard | −11%659 | −14%651 | −8%636 | +71%998 | ×2,01 061 | ×4,0970 |
Tous les chiffres 54 tests × 3 clients
| Test | Pipe | Surge | Clash |
|---|---|---|---|
| SOCKS5 ↓ 1 | 5 486 | 5 408 | 4 338 |
| SOCKS5 ↑ 1 | 1 795 | 1 915 | 1 453 |
| SOCKS5 ↓ 8 | 6 139 | 5 772 | 3 924 |
| SOCKS5 ↑ 8 | 4 285 | 4 520 | 1 347 |
| SOCKS5 ↓ 64 | 5 203 | 4 904 | 2 964 |
| SOCKS5 ↑ 64 | 3 360 | 3 428 | 253 |
| Shadowsocks ↓ 1 | 4 396 | 4 649 | 1 292 |
| Shadowsocks ↑ 1 | 1 776 | 1 743 | 1 348 |
| Shadowsocks ↓ 8 | 3 648 | 4 006 | 1 171 |
| Shadowsocks ↑ 8 | 2 498 | 2 594 | 1 257 |
| Shadowsocks ↓ 64 | 2 907 | 3 066 | 907 |
| Shadowsocks ↑ 64 | 2 463 | 2 644 | 251 |
| VMess ↓ 1 | 3 655 | 3 025 | 1 911 |
| VMess ↑ 1 | 1 852 | 1 630 | 869 |
| VMess ↓ 8 | 3 884 | 3 415 | 1 723 |
| VMess ↑ 8 | 2 232 | 2 725 | 742 |
| VMess ↓ 64 | 3 460 | 2 837 | échec |
| VMess ↑ 64 | 2 357 | 2 325 | échec |
| VLESS ↓ 1 | 4 196 | 4 033 | 2 068 |
| VLESS ↑ 1 | 1 181 | 1 682 | 959 |
| VLESS ↓ 8 | 5 663 | 6 338 | 1 946 |
| VLESS ↑ 8 | 3 889 | 4 049 | 729 |
| VLESS ↓ 64 | 4 572 | 4 879 | échec |
| VLESS ↑ 64 | 2 690 | 3 108 | échec |
| Trojan ↓ 1 | 3 919 | 3 575 | échec |
| Trojan ↑ 1 | 1 807 | 1 629 | échec |
| Trojan ↓ 8 | 4 029 | 3 908 | échec |
| Trojan ↑ 8 | 2 799 | 2 655 | échec |
| Trojan ↓ 64 | 3 124 | 3 442 | échec |
| Trojan ↑ 64 | 2 466 | 2 528 | échec |
| AnyTLS ↓ 1 | 4 201 | 2 801 | échec |
| AnyTLS ↑ 1 | 1 823 | 1 521 | échec |
| AnyTLS ↓ 8 | 3 748 | 3 647 | échec |
| AnyTLS ↑ 8 | 2 520 | 2 370 | échec |
| AnyTLS ↓ 64 | 1 815 | 1 451 | échec |
| AnyTLS ↑ 64 | 3 261 | 2 639 | échec |
| Hysteria 2 ↓ 1 | 1 308 | 1 440 | 291 |
| Hysteria 2 ↑ 1 | 1 488 | 1 316 | 166 |
| Hysteria 2 ↓ 8 | 1 277 | 1 169 | 289 |
| Hysteria 2 ↑ 8 | 1 451 | 1 334 | 174 |
| Hysteria 2 ↓ 64 | 1 433 | 611 | 255 |
| Hysteria 2 ↑ 64 | 1 439 | 1 288 | 173 |
| TUIC ↓ 1 | 1 296 | 1 364 | 311 |
| TUIC ↑ 1 | 1 458 | 1 169 | 188 |
| TUIC ↓ 8 | 1 410 | 1 002 | 288 |
| TUIC ↑ 8 | 1 431 | 1 219 | 190 |
| TUIC ↓ 64 | 1 533 | 524 | 262 |
| TUIC ↑ 64 | 1 366 | 1 179 | 188 |
| WireGuard ↓ 1 | 659 | échec | 744 |
| WireGuard ↑ 1 | 998 | échec | 582 |
| WireGuard ↓ 8 | 651 | échec | 753 |
| WireGuard ↑ 8 | 1 061 | échec | 522 |
| WireGuard ↓ 64 | 636 | échec | 690 |
| WireGuard ↑ 64 | 970 | échec | 240 |
Où Pipe est derrière
Les 24, sans exception. La plupart sont des mesures uniques de dix secondes, et sur les téléphones, d’une séance à l’autre, un test varie de plus que ces écarts. Chacun figure sur notre liste.
| Banc | Test | Pipe | Meilleur des autres | Écart |
|---|---|---|---|---|
| App Mac | Shadowsocks ↑ 1 | 9 336 | 10 862 Surge Mac | −14% |
| App Mac | VMess ↓ 1 | 6 787 | 7 523 FlClash | −10% |
| App Mac | VMess ↑ 64 | 5 237 | 5 535 Surge Mac | −5% |
| App Mac | Trojan ↑ 1 | 5 998 | 6 499 Surge Mac | −8% |
| App Mac | AnyTLS ↑ 1 | 8 397 | 8 929 Surge Mac | −6% |
| App Android | SOCKS5 ↓ 64 | 2 276 | 2 474 FlClash | −8% |
| App Android | Shadowsocks ↓ 64 | 1 858 | 2 571 Surfboard | −28% |
| App Android | Trojan ↓ 8 | 2 765 | 3 023 Surfboard | −9% |
| App iPhone | SOCKS5 ↑ 1 | 1 795 | 1 915 Surge | −6% |
| App iPhone | SOCKS5 ↑ 8 | 4 285 | 4 520 Surge | −5% |
| App iPhone | Shadowsocks ↓ 1 | 4 396 | 4 649 Surge | −5% |
| App iPhone | Shadowsocks ↓ 8 | 3 648 | 4 006 Surge | −9% |
| App iPhone | Shadowsocks ↓ 64 | 2 907 | 3 066 Surge | −5% |
| App iPhone | Shadowsocks ↑ 64 | 2 463 | 2 644 Surge | −7% |
| App iPhone | VMess ↑ 8 | 2 232 | 2 725 Surge | −18% |
| App iPhone | VLESS ↑ 1 | 1 181 | 1 682 Surge | −30% |
| App iPhone | VLESS ↓ 8 | 5 663 | 6 338 Surge | −11% |
| App iPhone | VLESS ↓ 64 | 4 572 | 4 879 Surge | −6% |
| App iPhone | VLESS ↑ 64 | 2 690 | 3 108 Surge | −13% |
| App iPhone | Trojan ↓ 64 | 3 124 | 3 442 Surge | −9% |
| App iPhone | Hysteria 2 ↓ 1 | 1 308 | 1 440 Surge | −9% |
| App iPhone | WireGuard ↓ 1 | 659 | 744 Clash | −11% |
| App iPhone | WireGuard ↓ 8 | 651 | 753 Clash | −14% |
| App iPhone | WireGuard ↓ 64 | 636 | 690 Clash | −8% |
En dehors du débit, le moteur dépense plus de CPU que sing-box sur Shadowsocks à flux unique, dans les deux sens, et occupe plus de mémoire que mihomo sur soixante-quatre envois WireGuard. Ces trois tests figurent dans les grilles du moteur ci-dessus.
Pourquoi il est rapide
Rien ici ne tient à une astuce du banc. Pour chaque test lent, nous remontons jusqu’à la cause, et la plupart se révèlent être de petites choses : ce que Pipe remet à l’autre bout, et ce qu’il fait entre deux rafales.
Des blocs entiers sur le réseau
Un serveur proxy ouvre et retransmet chaque bloc qu’on lui envoie. Les blocs Shadowsocks, les trames AnyTLS et les enregistrements TLS partent désormais de Pipe à la taille qui en remplit un, jamais sous la forme d’un bloc plein suivi d’une miette : le serveur travaille donc moins pour chaque gigaoctet.
Rien de partagé sur le chemin rapide
Aucun verrou n’est pris à chaque paquet, le budget mémoire se lit sans verrou, et les tampons de chaque flux lui restent tant qu’il n’a pas été silencieux pendant dix millisecondes, au lieu d’être rendus à chaque pause.
Une pile TCP/IP maison
Le trafic du tunnel rencontre une pile écrite pour ce travail : des fenêtres dimensionnées pour l’appareil, des accusés de réception groupés, et des paquets lus et écrits par rafales là où le système le permet.
Aucun runtime sur le chemin
Rust se compile en code machine, sans ramasse-miettes : il n’y a donc ni collecte qui impose une pause, ni second tas qui grossit. Le CPU que coûte un gigaoctet, c’est du chiffrement et des appels système, et guère plus.
Méthode
Quatre règles, dont découle tout ce qui figure sur cette page.
- Un seul instrument. Chaque chiffre de débit est une exécution d’iperf3 : TCP, dix secondes après deux secondes écartées, les Mbit/s du récepteur. Le générateur est en dehors de tous les clients, et c’est le même pour tous.
- Seul le client change. Un serveur à version fixée (sing-box 1.14.4), une liaison, une liste de tests. Chaque client tourne tel qu’il est livré, avec ses propres réglages par défaut ; aucun n’est ajusté, et Pipe ne reçoit aucune option que les autres n’ont pas.
- Tout est conservé. Chaque exécution est une ligne dans un journal, celles qui ont échoué aussi, et chaque chiffre, graphique et tableau de cette page est généré par un script à partir de ce journal. Un client qui ne prend pas en charge un protocole laisse un tiret ; celui qui n’a pas pu terminer un test est marqué « échec ».
- Les défaites sont affichées. Un test que Pipe perd reste dans les tableaux et dans le décompte.
Les bancs d’essai
- Le moteur
- Un MacBook Pro (M1 Max, macOS 27.2) seul, en boucle locale. Chaque moteur est un processus avec un port redirigé ; les secondes CPU et le pic de mémoire sont lus de l’extérieur.
- App Mac
- Une machine virtuelle macOS 27.2 (10 cœurs) sur ce Mac, qui est aussi l’autre bout. La machine partage les cœurs de son hôte avec le serveur : ces chiffres classent donc les apps et ne sont pas ce qu’atteindrait un Mac dédié.
- App Android
- Un Galaxy S25 Edge sous Android 17, relié au Mac par câble, la liaison passant par adb. iperf3 tourne sur le téléphone sous l’identité propre d’une app, à l’intérieur du tunnel de chaque client. Le CPU et la mémoire sont lus sur le téléphone.
- App iPhone
- Un iPhone 15 Pro sous iOS 27.2, relié au Mac par câble. Une petite app à nous, qui embarque la libiperf d’origine, produit la charge : le même binaire pour chaque client, en dehors de tous.
À lire avant de citer un chiffre
- Ce sont des liaisons de laboratoire, pas internet. Elles classent des clients sur une même machine et n’indiquent pas la vitesse qu’aura votre connexion.
- La plupart des tests reposent sur un seul relevé de dix secondes. Sur les téléphones, un test peut varier d’un tiers d’une séance à l’autre du seul fait de la chaleur : un résultat serré, pris isolément, veut donc dire peu de chose ; la tendance sur tout un banc en dit davantage.
- Pipe est le build du 14 novembre 2026 nommé plus haut ; les apps portent ces chiffres à partir de la première version publiée qui en est tirée. Les autres clients sont les versions nommées plus haut, telles que leurs auteurs les livrent. Clash sur l’iPhone est compilé à partir de ses sources publiques avec une seule modification, qui lie un proxy au câble.
- Le débit brut, et ce qu’il coûte, est tout ce qui est mesuré ici. La latence, l’autonomie sur une journée et la reprise après un changement de réseau ne le sont pas.
- Les noms des autres produits appartiennent à leurs propriétaires. Rien ici n’est approuvé par eux, et chaque chiffre est notre propre mesure, sur nos propres bancs.