rama 0.3.0-alpha.1 · plabayo rama · Discussion #622

3 min read Original article ↗

🎈 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 ws CLI 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
  • socks5h hostname-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 opentelemetry feature 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

  • EasyHttpWebClientBuilder now supports connection pooling, DNS config, and custom connectors
  • Dozens of dependency and profile updates
  • MSRV bumped to 1.88 (with if let chains 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.

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.