Skip to main content

Crate seify

Crate seify 

Source
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.
ChannelCapabilities
Structured runtime capabilities for one channel.
ChannelControls
Optional controls exposed by one channel.
DcOffset
Automatic DC offset correction handle for one channel.
Device
Wraps a driver implementation.
DeviceCapabilities
Structured runtime capabilities for a device.
DeviceDescriptor
Discovered device descriptor.
DynDevice
Runtime-dispatched opened device.
Frequency
Frequency control handle for one channel.
FrequencyComponent
Frequency component handle for one channel.
Gain
Gain control handle for one channel.
GainElement
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.
SampleRate
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.
DriverError
Driver-specific error details.
Error
Error returned by Seify operations.
RangeItem
Component of a Range.

Traits§

AgcControl
Automatic gain control capability.
AntennaControl
Antenna control capability.
BandwidthControl
Bandwidth control capability.
ChannelInfo
Basic channel metadata.
DcOffsetControl
Automatic DC offset correction capability.
DeviceInfo
Basic device metadata.
DriverBackend
Driver discovery/opening backend.
DynDeviceBackend
Runtime-dispatched device backend.
ErasedRxDevice
Object-safe RX streaming capability for runtime-dispatched devices.
ErasedTxDevice
Object-safe TX streaming capability for runtime-dispatched devices.
FrequencyControl
Frequency control capability.
GainControl
Gain control capability.
RxDevice
RX streaming capability.
RxStreamer
Receive samples from a Device through one or multiple channels.
SampleRateControl
Sample-rate control capability.
TxDevice
TX streaming capability.
TxStreamer
Transmit samples with a Device through one or multiple channels.
TypedDeviceBackend
Typed driver implementation that can be opened directly.

Functions§

enumerate
Enumerate devices.
enumerate_with_args
Enumerate devices with given Args.

Type Aliases§

DynRxStreamer
Type-erased RX streamer.
DynTxStreamer
Type-erased TX streamer.