Rucho

Returns a brotli-encoded JSON echo (`Content-Encoding: br`).

get
https://rucho.org/brotli

Response

200

brotli-encoded JSON echo of the request

get/brotli
 
200

Returns a deflate-encoded JSON echo (`Content-Encoding: deflate`).

Uses the zlib container (matching httpbin’s zlib.compress), which is what
Content-Encoding: deflate means in practice for real-world clients.

get
https://rucho.org/deflate

Response

200

deflate-encoded JSON echo of the request

get/deflate
 
200

Returns a gzip-encoded JSON echo of the request (`Content-Encoding: gzip`).

get
https://rucho.org/gzip

Response

200

gzip-encoded JSON echo of the request

get/gzip
 
200

Returns `n` random bytes as the response body.

Response headers: Content-Type: application/octet-stream, Content-Length: n.
n is capped at MAX_BYTES_RESPONSE_SIZE (10 MiB); larger values return 400.
n = 0 returns an empty 200 OK.

The body is filled via rand::thread_rng().fill_bytes(&mut buf[..]) for
maximum-entropy payloads (useful for verifying binary integrity through a
proxy, since any tampering is observable).

get
https://rucho.org/bytes/{n}

Path Parameters

nintegerrequired

Number of random bytes to return (max 10485760)

>= 0

Response

application/octet-stream

Returns n random bytes as application/octet-stream

string
get/bytes/{n}
 
application/octet-stream

`/cache` — conditional-request endpoint.

Returns 304 Not Modified if the request carries If-None-Match or
If-Modified-Since; otherwise 200 with ETag + Last-Modified headers
and a JSON echo, so a client can revalidate on the next request.

get
https://rucho.org/cache

Response

Cacheable JSON echo with ETag + Last-Modified

get/cache