Skip to content
rustle

rustle against Tinyproxy

Same machines, same rules, one core each. rustle is first in 41 of 41 tests of the campaign; 11 of them run on both proxies, with the conditions next to every number.

1 core per proxy · authentication on · Scaleway Elastic Metal, Paris, AMD EPYC 8224P · 25 Gbit/s private network (23.5 measured) · median of 3 runs · seed 2004113323 · campaign of 2026-10-28.

The short version

rustle had the better value in 11 of the 11 tests where both it and Tinyproxy ran. Tinyproxy was not ahead in any of them. In this campaign Tinyproxy has no HTTPS proxy port, HTTP/2 to clients and WebSocket upgrades, so the tests that need them are not in the tables. Every value is a median of 3 runs, with the exact figures in the tables below.

What each one supports

Protocols supported by rustle and Tinyproxy
ProtocolrustleTinyproxy
HTTP proxy and CONNECT tunnelsYesYes
HTTPS proxy port (TLS)YesNo
HTTP/2 to clientsYesNo
WebSocket upgradesYesNo

As built and configured in the campaign, see “How Tinyproxy was run” below.

Test by test

Best clean concurrency level of each proxy. The last column is the ratio of rustle’s figure to Tinyproxy’s: how many times more or less. For memory and CPU, less is better.

Plain HTTP proxy port

Plain HTTP proxy port: rustle against Tinyproxy
TestrustleTinyproxyRatio
HTTP, 1 KB responsesreq/s55,2587,5807.3× more
HTTP, 10 KB responsesreq/s40,7835,6697.2× more
HTTP, 1 KB responses, a new connection per requestreq/s27,8277,5843.7× more
HTTP, 1 MB responsesreq/s2,62419913× more
HTTP, 10 MB responsesreq/s2682113× more
CONNECT tunnels, bulk transferGbit/s22.01.812× more
CPU cost per request (1 KB)µs/req18.1129.47.2× less
Memory with 1,000 open tunnelsMB14181.3× less
Memory with 5,000 open tunnelsMB40611.5× less
Memory with 10,000 open tunnelsMB541152.1× less
Memory with 25,000 open tunnelsMB952742.9× less

These are the figures of one campaign, on one kind of traffic. What the numbers do not show, multi-core results and the other proxies

How Tinyproxy was run

Tinyproxy 1.11.3

from source

  • MaxClients 200000
  • LogLevel Critical
  • no Via, no filters

What the campaign showed

  • No upstream keep-alive (documented limitation): it closes the upstream connection after every request.
  • Removes the Upgrade header (answered 426): no WebSocket support, listed as unsupported, never as zero.
  • No TLS or HTTP/2 listener.
  • Thread-per-connection with no core-count setting: left out of the multi-core curve.

Why each setting was chosen · Source repository of Tinyproxy

Found a setting that makes Tinyproxy faster? Open an issue on the proxy repository: the campaign is built to be re-run.

Try rustle

Open source, fast, optimized, safe.