rtlsdr-pure
Pure Rust implementation of librtlsdr, using nusb for native USB and
browser WebUSB access.
https://github.com/ThomasHabets/rtlsdr-pure
Purpose
Makes it easier and cleaner to access RTL SDR from the browser.
Status
Vibe coded test. The LLM took more than a sneak peak at https://github.com/osmocom/rtl-sdr/, so this is a derived work of that, with the same GPL license.
If claiming the interface fails in the browser
The browser console may report a NetworkError from WebUSB's
claimInterface operation.
Then the kernel may have claimed it for the DVB driver. You can either unload the DVB kernel modules (if they're modules), or just tell the driver to unbind it.
You can find the device path with:
$ lsusb -t
Bus 001.[…]
|__ Port 003: Dev 061, If 0, Class=Vendor Specific Class, Driver=dvb_usb_rtl28xxu, 480M
The format is <bus-port>:<config>.<interface>.
echo '1-3:1.0' | sudo tee /sys/bus/usb/drivers/dvb_usb_rtl28xxu/unbind