Build With Rama
Ramaยฎ is a modular service framework for Rust that helps you build proxies, servers, and clients with full control over your network stack.
Use Rama as the foundational Rust framework in your own codebase and bring your wildest ideas to life, or run the Rama CLI as a standalone network tool for inspection, intelligence gathering, tunneling and network diagnostics.
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 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
- โ Unix (UDS)
- โ Middleware
HTTP
- โ Auto
- โ HTTP/1.1
- โ H2
- ๐๏ธH3
- โ Middleware
Web Server
- โ FS
- โ Router
- โ Dyn Router
- โ Static Router
- โ Handler Extractors
- โ K8s Healthcheck
HTTP Client
HTTP Middleware
- โ CORS
- โ Auth
- โ Retry
- โ Rate Limiting
- โ Compression
TLS
- โ Rustls
- โ BoringSSL
- โ ACME
- โ mTLS
- โ Dynamic Certs
- โNSS
DNS Client
Proxy Protocols
- โ PROXY Protocol
- โ HTTP Proxy
- โ HTTPS Proxy
- โ SOCKS5 Proxy
- โ Linux TPROXY
Web Protocols
- โ SSE
- โ Datastar
- โ Web Sockets
- โWeb Transport
- โ gRPC
- โ FastCGI
Async-Method Trait Services
- โ Service
- โ Layer
- โ Extensions
- โ Dynanmic Dispatch
- โ Middleware
Telemetry
- โ Tracing
- โ OpenTelemetry
- โ dial9 runtime telemetry
- โ HTTP Metrics
- โ Transport Metrics
Diagnostics
- โ Curl Export
- โ HAR
Upstream Proxies
- โ MemoryProxyDB
- โ Username Config
- โ Proxy Filters
User Agent (UA)
- โ Http Emulation
- โ Tls Emulation
- โ UA Parsing
Fingerprinting
- โ Ja3
- โ Ja4
- โ Ja4H
- โ Akamai passive h2
- โ Peetprint (tls)
Utilities
- โ Error Handling
- โ Graceful Shutdown
- โ Connection Pooling
- ๐๏ธIP2Loc
- โ Tower Adapter
Apple Platform
- โ Network Extension
- โ XPC
Graphical Interface
- ๐๏ธTraffic Logger
- ๐๏ธTUI Implementation
- โTraffic Intercept
- โTraffic Replay
Binary
- โ Prebuilt Binaries
- ๐๏ธProxy Config
- โ HTTP Client
- โWASM Plugins
Data Scraping
- ๐๏ธHtml Processor
- โJson Processor
Browser
- โJS Engine
- โ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.