🚦Proxies
Build reverse proxies, TLS termination proxies, HTTP(S) proxies, SOCKS5 proxies, SNI proxies,
MITM proxies, transparent proxies and distortion proxies. Or combine them, as they are all made
from the same building blocks.
🌐Web Services
Web servers, REST APIs, static content, WebSockets, SSE and gRPC, served over HTTP/1.1, H2 or
H3. Built on Tokio.
🧑💻HTTP Clients
HTTP clients for HTTP/1.1, H2 and H3, with User-Agent emulation, upstream proxy support and
a connector stack you can change at every layer.
🔌Modular Architecture
Pick and choose components from TCP, UDP and QUIC up to TLS, DNS and HTTP. Services and
layers all the way down, so you compose exactly the stack you need.
🔎Traffic Inspection
Capture, inspect and intercept HTTP, WebSocket and TLS traffic, with HAR export. Use it as a
library or through the MITM proxy and its web UI in the rama CLI.
🧭Proxy Routing
Follow the system proxy settings on macOS, iOS, Windows and Linux, respect
HTTP_PROXY and NO_PROXY, or evaluate PAC scripts to decide how each
request leaves the machine.
📊Telemetry
Tracing and metrics using tracing and OpenTelemetry, plus dial9 runtime telemetry to see what
your Tokio runtime is actually doing.
🔍Fingerprinting
JA3, JA4, JA4H, PeetPrint and Akamai H2 fingerprints for the TLS and HTTP layers. Useful for
emulation, bot detection and security testing.
🖥️Platform Integrations
Transparent proxies on Apple devices via Network Extension, on Windows via WFP and on Linux
via TPROXY. XPC for Apple IPC.
🚀Async Core, Blocking Boundaries
Everything is async and built on Tokio. When synchronous code
needs it, you can put a blocking API in front of the same service stack.
🛡️Type-Safe
Rust's type system helps you build network services that are easier to maintain, and catches
a lot of errors at compile time.
📦Binary
Use Rama as a standalone CLI tool. HTTP client, DNS resolving, TLS probes, proxies, echo and
test services, all without writing any code.