🎈 Rama 0.3.0-alpha.1 — A Protocol Leap Forward
The first alpha release in the 0.3 series is here — bringing major protocol support, deeper observability, and powerful new primitives for proxy authors.
This release builds on everything Rama 0.2 introduced and pushes further into the realm of protocol-aware, production-ready networking in Rust.
✨ What’s New in 0.3.0-alpha.1
🧩 WebSocket Support (client, server, h2, CLI)
Rama now speaks WebSocket — fully and fluently.
The new rama-ws crate brings:
- WebSocket client and server implementations
- HTTP/1.1 and HTTP/2 upgrade support
- Autobahn conformance test support
- A new
rama wsCLI tool, with an interactive TUI mode - Documentation and real examples included
Whether you’re intercepting WebSocket traffic, tunneling it, or generating it — Rama makes it straightforward.
🧦 SOCKS5 Support (client, server, UDP, connect)
We’ve added full support for the SOCKS5 protocol:
- Includes CONNECT, BIND, and UDP ASSOCIATE support
- Username/password authentication
socks5hhostname-based proxying- Works out of the box in layered or standalone setups
You can now build your own pluggable SOCKS proxy with just a few lines of Rama.
📡 Observability and Tracing
This release introduces first-class OpenTelemetry support:
- New
opentelemetryfeature for trace export - OTLP-compatible HTTP client layer
- Trace and span IDs are automatically injected in all spans
- Cleaner root span macro and tracing internals
Instrumentation in Rama is now more powerful and consistent — with minimal setup required.
📬 Built-in Datastar Integration
Datastar is now natively supported in Rama — no external SDKs needed.
Includes:
- Full SSE (Server-Sent Events) compatibility
- End-to-end test coverage
- Working examples
- Improved RAMA-native datastar event encoding
🔐 TLS + Fingerprinting Improvements
- Support for TLS ALPS and draft GOST cipher suites
- PeetPrint fingerprinting added (frontend-exposed and feature-gated)
- BoringSSL integration improved and extended
These updates strengthen Rama’s protocol inspection and emulation capabilities.
🔍 Protocol Detection and Peeking
- HAProxy protocol peek + routing support
- TLS, HTTP, and SOCKS5 peeking integrated
- Enables automatic routing of inbound traffic based on early handshake bytes
This allows Rama to dynamically choose a path based on how a connection behaves — before even decoding the full protocol.
🧫 Unix Domain Socket Support
Added initial rama-unix crate for native UDS support:
- Seamless integration with existing transports and layers
- Examples and tests included
- Documentation updates in the transport section
🧪 Real-World Examples
Several new example applications have been added:
- Multi-protocol proxy — HTTP, HTTPS, SOCKS5, SOCKS5H, TLS, and auth in one stack
- WebSocket MITM proxy — with boring TLS and HTTP/2 WS support
- Peek-based proxy routing — for advanced connectivity use cases
These examples are a great way to learn Rama or serve as a starting point for your own applications.
📌 Additional Improvements
EasyHttpWebClientBuildernow supports connection pooling, DNS config, and custom connectors- Dozens of dependency and profile updates
- MSRV bumped to 1.88 (with
if letchains and lint fixes) - Improved CORS preflight handling
- Cleaner server auth logic
- Expanded tracing consistency across layers
🚀 Try It, Build With It, Contribute Back
This is the first alpha in the 0.3 series. Rama remains experimental, but actively used in production and growing fast.
Alpha releases will continue to ship frequently — focused, incremental, and responsive to feedback.
🤝 Partner With Us
If you're using Rama in production or planning to — we’d love to hear from you.
- Sponsor the project to support ongoing development
- Email us for integration help, support contracts, or custom feature development
We work directly with companies using Rama — helping them build, adapt, and extend it to fit their infrastructure.
Thank you for building with Rama. We’re just getting started.