Expand description
Rust SDR hardware abstraction over multiple radio backends.
Seify provides one API for probing, opening, configuring, and streaming from
SDR devices. Applications can use typed devices when the concrete backend is
known at compile time, or DynDevice when a driver is selected at runtime
through Args.
§Driver features
The default feature set enables the soapy backend. Other backends are
enabled with Cargo features such as rtlsdr, hackrfone, hydrasdr,
bladerf1, aaronia_http, and dummy.
Native Rust drivers are still experimental. For production use and the widest set of stable hardware integrations, prefer the SoapySDR backend.
§Example
use num_complex::Complex32;
use seify::{DynDevice, RxStreamer};
let dev = DynDevice::from_args("driver=soapy")?;
let rx0 = dev.rx(0)?;
let mut rx = rx0.streamer()?;
let mut samples = [Complex32::new(0.0, 0.0); 1024];
rx.activate()?;
let n = rx.read(&mut [&mut samples], 200_000)?;
println!("read {n} samples");Modules§
- impls
- Hardware drivers, implementing Seify’s capability traits.
Structs§
- Agc
- Automatic gain control handle for one channel.
- Antenna
- Antenna control handle for one channel.
- Args
- Arbitrary arguments and parameters.
- Bandwidth
- Bandwidth control handle for one channel.
- Channel
Capabilities - Structured runtime capabilities for one channel.
- Channel
Controls - Optional controls exposed by one channel.
- DcOffset
- Automatic DC offset correction handle for one channel.
- Device
- Wraps a driver implementation.
- Device
Capabilities - Structured runtime capabilities for a device.
- Device
Descriptor - Discovered device descriptor.
- DynDevice
- Runtime-dispatched opened device.
- Frequency
- Frequency control handle for one channel.
- Frequency
Component - Frequency component handle for one channel.
- Gain
- Gain control handle for one channel.
- Gain
Element - Gain element handle for one channel.
- Range
- Range of possible values, comprised of individual values and/or intervals.
- Registry
- Registry of driver discovery/opening backends.
- RxChannel
- RX channel handle.
- Sample
Rate - Sample-rate control handle for one channel.
- TxChannel
- TX channel handle.
Enums§
- Capability
- Device or channel capability used in semantic errors.
- Direction
- Signal direction.
- Driver
- Supported hardware drivers.
- Driver
Error - Driver-specific error details.
- Error
- Error returned by Seify operations.
- Range
Item - Component of a Range.
Traits§
- AgcControl
- Automatic gain control capability.
- Antenna
Control - Antenna control capability.
- Bandwidth
Control - Bandwidth control capability.
- Channel
Info - Basic channel metadata.
- DcOffset
Control - Automatic DC offset correction capability.
- Device
Info - Basic device metadata.
- Driver
Backend - Driver discovery/opening backend.
- DynDevice
Backend - Runtime-dispatched device backend.
- Erased
RxDevice - Object-safe RX streaming capability for runtime-dispatched devices.
- Erased
TxDevice - Object-safe TX streaming capability for runtime-dispatched devices.
- Frequency
Control - Frequency control capability.
- Gain
Control - Gain control capability.
- RxDevice
- RX streaming capability.
- RxStreamer
- Receive samples from a Device through one or multiple channels.
- Sample
Rate Control - Sample-rate control capability.
- TxDevice
- TX streaming capability.
- TxStreamer
- Transmit samples with a Device through one or multiple channels.
- Typed
Device Backend - Typed driver implementation that can be opened directly.
Functions§
- enumerate
- Enumerate devices.
- enumerate_
with_ args - Enumerate devices with given
Args.
Type Aliases§
- DynRx
Streamer - Type-erased RX streamer.
- DynTx
Streamer - Type-erased TX streamer.