netstack.fm

← netstack.fm26. Mai · 33 Min.

Building and testing network stacks with Rama

Building and testing network stacks with Rama26. Mai33 Min.

<h2>Episode 38: Building and testing network stacks with Rama.</h2><p>In this Protocol Shorts episode of <a rel="noopener noreferrer nofollow" href="http://Netstack.fm" target="_blank">Netstack.fm</a>, Glen talks with Brecht Stamper about Rama, the modular Rust framework for building clients, servers, proxies, and other network systems. Brecht shares how he came to understand Rama’s core idea that everything is a service, and why that simple input to output contract makes it easier to compose complex stacks without constantly inventing new traits or glue code.<br /></p><p>They also discuss how Rama helps with testing, including gRPC client and server logic without spinning up real HTTP or TCP infrastructure. The conversation then moves into practical production lessons, such as gRPC latency caused by TCP_NODELAY, the role of OpenTelemetry and logging, and how Rama can provide better abstractions while still allowing low level control.<br /></p><p>Later in the episode, Glen and Brecht explore Rama’s evolving extension system, including the move toward append only extensions, clearer separation between request and connection state, and support for complex scenarios such as HTTP/2 streams and protocol upgrades. <br /><br />They close with thoughts on where Rama is heading next, including HTTP/3, QUIC, better developer tooling, performance work, and making more hard won network fixes available to everyone through the framework.</p><p><br /><b>Learn more</b></p><p></p><ul><li><a rel="noopener noreferrer nofollow" href="https://ramaproxy.org/" target="_blank">https://ramaproxy.org/</a> — Rama homepage: modular Rust framework for proxies, clients, servers, inspection, tunneling, and network diagnostics.</li><li><a rel="noopener noreferrer nofollow" href="https://ramaproxy.org/book/" target="_blank">https://ramaproxy.org/book/</a> — Rama book: broader introduction to Rama and its approach to fine grained programmable control over network stacks.</li><li><a rel="noopener noreferrer nofollow" href="https://ramaproxy.org/docs/rama/index.html" target="_blank">https://ramaproxy.org/docs/rama/index.html</a> — Rama API documentation: generated Rust docs for the main Rama crate.</li><li><a rel="noopener noreferrer nofollow" href="https://github.com/plabayo/rama" target="_blank">https://github.com/plabayo/rama</a> — Rama source code on GitHub.</li></ul><h2>Chapters</h2><ul><li>00:00 Intro</li><li>00:48 Introduction to Rama and Brecht's Role</li><li>02:46 Understanding Services in Rama</li><li>08:22 Testing and Mocking in Rama</li><li>10:23 gRPC and TCP Configuration Issues</li><li>15:35 Evolution of Extensions in Rama</li><li>24:58 Building with Rama and Rama's Horizon</li><li>31:52 Outro</li></ul><h2><a rel="noopener noreferrer nofollow" href="http://Netstack.FM" target="_blank">Netstack.FM</a></h2><ul><li>More information: <a rel="noopener noreferrer nofollow" href="https://netstack.fm/#episode-38" target="_blank">https://netstack.fm/#episode-38</a></li><li>Join our Discord: <a rel="noopener noreferrer nofollow" href="https://discord.gg/29EetaSYCD" target="_blank">https://discord.gg/29EetaSYCD</a></li><li>Reach out to us: <a rel="noopener noreferrer nofollow" href="mailto:hello@netstack.fm" target="_blank">hello@netstack.fm</a><br /></li></ul><p>Music for this episode was composed by Dj Mailbox. Listen to his music at <a rel="noopener noreferrer nofollow" href="https://on.soundcloud.com/4MRyPSNj8FZoVGpytj" target="_blank">https://on.soundcloud.com/4MRyPSNj8FZoVGpytj</a></p>