/rust-soapysdr

Rust bindings for SoapySDR, the vendor-neutral software defined radio hardware abstraction layer

Primary LanguageRustApache License 2.0Apache-2.0

Rust bindings for SoapySDR

SoapySDR provides a hardware abstraction layer for many software defined radio devices.

API Documentation

Dependencies

This library requires libsoapysdr 0.6.0 and libclang 3.5+ (for bindgen) to be installed manually.

Ubuntu

(Tested on Ubuntu 16.04)

sudo add-apt-repository ppa:myriadrf/drivers
sudo apt update
sudo apt install libsoapysdr-dev llvm-3.9-dev libclang-3.9-dev

# Choose the appropriate drivers for your hardware:
sudo apt install soapysdr-module-rtlsdr soapysdr-module-hackrf soapysdr-module-uhd soapysdr-module-lms7

Warning

Many SoapySDR driver modules have error handling and thread safety bugs. This library provides safe Rust wrappers assuming the drivers meet the (under-documented) intentions of the SoapySDR core API contract, but if SoapySDR loads modules that violate this contract and you do atypical things with them, you may encounter unexpected behavior. For details, see this SoapySDR issue.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.