An opensource project by Plabayo BV

Build network services without limitations.

Rama® is a modular service framework for Rust that gives you programmable control over your entire network stack.

Build production-ready proxies, servers, clients, API gateways, traffic inspection tools, and custom network services using composable building blocks instead of rigid abstractions.

Use Rama as the foundation of your own codebase, or run the Rama CLI for traffic inspection, intelligence gathering, tunneling, and network diagnostics. Already trusted in production for network security, routing, and data extraction.

Commercial support Service contracts and partner offerings are available at ramaproxy.com.
Learn more

Built for Modularity

Rama is built around a service model where services are fallible async methods that can be stacked, branched, and composed. You can wire together transport, TLS, HTTP, proxy logic, and telemetry as a set of reusable building blocks instead of a single large framework.

You can keep using your existing HTTP or TLS stack, such as curl or OpenSSL, and attach Rama only where you need it. Or you can start from the built in Rama services and swap out parts of the stack as your needs grow.

If you are a developer, you get a composable toolkit for building proxies, servers, and clients that fit your codebase. If you are an organisation, you can treat Rama as a platform component and rely on our professional services for design, integration, and long term maintenance.

Our built in services are intentionally minimal, which makes them easy to extend or modify. The entire codebase is open for you to use as inspiration, adapt to your own environment, or harden for production workloads.

Framework Properties

🚦 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.

Get Started with Rama

Choose your preferred installation method. Either add Rama as a framework dependency to your Rust project for maximum flexibility and control, or install the pre-built Rama CLI binary for immediate use as a standalone tool without writing code:

Add Rama as a dependency to your Rust project
Install Rama CLI using curl
Install Rama CLI from source

Batteries Included

Transports

HTTP

HTTP Middleware

TLS

Web Protocols

User Agent (UA)

Fingerprinting

Apple Platform

Data Scraping

Browser

🗒️ Note

❌ items are on our radar but have no immediate plans. Please open an issue to request a feature if you have an immediate need for it. Please add sufficient motivation/reasoning and consider becoming a sponsor to help accelerate its priority.

Supported by

🎙️ If you like Rama, you might also like Netstack.FM

Netstack.FM is a podcast about networking, Rust, and everything in between — exploring the stack from protocols and packet flows to the people and projects building the modern internet.

Visit Netstack.FM for more information about the podcast and all its episodes.

Created by Plabayo — the company behind Rama.