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.
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.
- Flexible middleware layers and service composition
- Custom service implementations using your preferred Rust libraries or custom code
- Easy integration with existing crates, tools, and infrastructure
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:
Batteries Included
Transports
HTTP
- ✅Auto
- ✅HTTP/1.1
- ✅H2
- ✅H3
- ✅Middleware
Web Server
HTTP Client
HTTP Middleware
TLS
- ✅Rustls
- ✅BoringSSL
- ✅ACME
- ✅mTLS
- ✅Dynamic Certs
- ✅Cert Pinning
- ❌NSS
DNS
Proxy Protocols
Service Model
Diagnostics
Man-In-The-Middle Proxy
Upstream Proxies
User Agent (UA)
Fingerprinting
Utilities
Apple Platform
Traffic Inspection
Binary
Data Scraping
Browser
- ✅JS Runtime
- ❌Web API Emulation
🗒️ 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.