RTLSDR-NEXT rewrites librtlsdr in Rust with Tokio streams and zero allocations
A Rust rewrite of librtlsdr aims to replace the aging C SDR driver with a Tokio-native pipeline, cutting allocations to zero and speeding Pi 5 IQ conversion.

RTLSDR-NEXT arrives as a replacement for one of the most widely used pieces of SDR plumbing in the hobbyist stack: librtlsdr, the C driver written around 2013 that still sits underneath OpenWebRX, Gqrx, SDR++, and a long tail of other tools used by millions of people. Matthew Delashaw built the rewrite in Rust for a practical reason, not a language demo, aiming for a Raspberry Pi fallback radio receiver for internet outages and storm-chaser SKYWARN listening.
That framing matters because the project is not just another experimental SDR app. It is a ground-up swap for infrastructure that has been carrying real workloads for years. Delashaw said the old driver’s blocking callback loop, manual buffer management, and pre-async architecture make backpressure hard to reason about and force Rust users into threads, channels, and lifetime juggling just to make the code fit modern async systems. RTLSDR-NEXT turns that model inside out by exposing SDR data as a native Tokio Stream and by pushing the hot path through a zero-allocation DSP pipeline.

The performance claims are hard to ignore. On a Raspberry Pi 5, Delashaw reported 1.49 GiB/s IQ conversion, around 45 ms frequency switching, and zero allocations in the streaming path. That kind of result points to a rewrite that could change day-to-day practice for people who run compact receive setups, portable monitoring stations, or always-on decoders on low-power hardware. It also lines up with Tokio’s own design language: streams as the async equivalent of iterators, and mpsc as the queue for moving values between async tasks. RTLSDR-NEXT uses that model as its core architecture instead of bolting async onto a callback API.
The timing also fits the hardware shift already underway in the RTL-SDR world. RTL-SDR Blog V4 units use the R828D tuner and RTL2832U chipset, and the product line requires new drivers while staying backwards compatible with V3 and older RTL-SDR hardware. The V4’s 1 PPM TCXO and USB-C connection make it a more modern dongle, and RTLSDR-NEXT gives that hardware a driver stack that matches the device generation.
For a community that still leans on legacy code hidden inside everyday radio tools, this is the significant kind of rewrite: not a shiny side project, but a chance to replace aging C infrastructure with something safer, easier to maintain, and better suited to the async Rust stack already reshaping the rest of the ecosystem.
Know something we missed? Have a correction or additional information?
Submit a Tip

