Get Started
Rama is a powerful, modular service framework for Rust that helps you build proxies, servers, and clients with full control over your network stack.
Built for Modularity
Rama's architecture is built around the Tower-like service model, enabling services to be stacked, branched, and composed. This design allows for:
- Flexible middleware (Layers) and service composition
- Custom service implementations using your preferred libraries
- Easy integration with existing Rust ecosystem crates
Want to use curl or hyper for HTTP? Prefer OpenSSL or GnuTLS for TLS? Rama's modular design lets you build custom services while still benefiting from its core features.
Our built-in services are intentionally minimal, making them easy to extend or modify. The entire codebase is open for you to use as inspiration, adapt, and build upon.
Framework Properties
🚦 Proxies
Build powerful network proxies including reverse proxies, TLS termination proxies, HTTP(S) proxies, SOCKS5 proxies, MITM proxies, and distortion proxies. Perfect for load balancing, security, and network analysis.
🌐 Web Services
Create high-performance web servers, REST APIs, and static content servers. Built on Tokio for maximum performance and reliability.
🧑💻 HTTP Clients
Build sophisticated HTTP clients with user-agent emulation, proxy support, and advanced request/response handling. Perfect for web scraping and API interactions.
🔌 Modular Architecture
Pick and choose components from TCP/UDP to HTTP and TLS. Build your perfect stack with Rama's service-oriented architecture.
📊 Telemetry
Built-in support for tracing and metrics using tracing and OpenTelemetry. Monitor and debug your services with ease.
🔍 Fingerprinting
Advanced fingerprinting capabilities for HTTP and TLS layers to help with emulation and security testing.
🚀 Async-First
Built from the ground up with asynchronous programming in mind, Rama uses Tokio as its one and only runtime for maximum performance and concurrency.
🛡️ Type-Safe
Leverage Rust's powerful type system to build robust and maintainable network services. Catch errors at compile time.
📦 Binary
Download and use Rama as a standalone binary CLI tool. No need to build from source or integrate into your Rust project to benefit from Rama's capabilities.
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
- ✅TCP
- ✅UDP
- ✅Middleware
HTTP
- ✅Auto
- ✅HTTP/1.1
- ✅H2
- 🏗️H3 2
- ✅Middleware
Web Server
HTTP Client
DNS
Proxy Protocols
- ✅PROXY Protocol
- ✅HTTP Proxy
- ✅HTTPS Proxy
- 🏗️SOCKS5 1
Async-Method Trait Services
Telemetry
Upstream Proxies
User Agent (UA)
Fingerprinting
- ✅Ja3
- ✅Ja4
- ✅Ja4H
- 🏗️Akamai passive h2 1
- 🏗️Peetprint (tls) 1
Utilities
- ✅Error Handling
- ✅Graceful Shutdown
- ✅Connection Pooling
- 🏗️IP2Loc 2
- ✅Tower Adapter
Graphical Interface
Binary
- ✅Prebuilt Binaries
- 🏗️Proxy Config 2
- ✅HTTP Client
- ❌WASM Plugins 3
🗒️ Footnotes
- 1 Part of v0.2.0 milestone (ETA: 2025 Q2)
- 2 Part of v0.3.0 milestone (ETA: 2025 Q3)
- 3 No immediate plans, but on our radar. Please open an issue to request this 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
Partnership
Rama is a project of Plabayo, offering professional services and partnership opportunities for organizations looking to integrate or extend Rama in their infrastructure. We provide service contracts for custom development, integration support, and maintenance of Rama-based solutions.
For partnership inquiries, please contact us at partner@ramaproxy.org or become a business sponsor to help sustain our work, request features and get some of the benefits of a commercial partner.