Expand description
Block Library
Functional/Apply-style Blocks
Block | Usage | WebAssembly? |
---|---|---|
Apply | Apply a function to each sample. | ✅ |
ApplyIntoIter | Apply a function on each input sample to create an iterator and output its values. | ✅ |
ApplyNM | Apply a function to each N input samples, producing M output samples. | ✅ |
Combine | Apply a function to combine two streams into one. | ✅ |
Filter | Apply a function, returning an Option to allow filtering samples. | ✅ |
Sink | Apply a function to received samples. | ✅ |
Source | Repeatedly apply a function to generate samples. | ✅ |
Split | Apply a function to split a stream. | ✅ |
FiniteSource | Repeatedly apply a function to generate samples, using Option values to allow termination. | ✅ |
DSP blocks
Block | Usage | WebAssembly? |
---|---|---|
Agc | Automatic Gain Control | ✅ |
Fft | Compute an FFT. | ✅ |
Fir | FIR filter and resampler. | ✅ |
Iir | IIR filter. | ✅ |
Misc
Block | Usage | WebAssembly? |
---|---|---|
ConsoleSink | Log stream data with log::info!. | ✅ |
Delay | Delays samples. | ✅ |
Head | Copies only a given number of samples and stops. | ✅ |
NullSink | Drops samples. | ✅ |
NullSource | Generates a stream of zeros. | ✅ |
Selector | Forward the input stream with a given index to the output stream with a given index. | ✅ |
TagDebug | Drop samples, printing tags. | ✅ |
Throttle | Limit sample rate. | ❌ |
VectorSink | Store received samples in vector. | ✅ |
VectorSource | Stream samples from vector. | ✅ |
Message Passing
Block | Usage | WebAssembly? |
---|---|---|
MessageBurst | Output a given number of messages in one burst and terminate. | ✅ |
MessageCopy | Forward messages. | ✅ |
MessagePipe | Push received messages into a channel. | ✅ |
MessageSink | Black hole for messages. | ✅ |
MessageSource | Output the same message periodically. | ✅ |
Performance Evaluation
Block | Usage | WebAssembly? | Feature |
---|---|---|---|
Copy | Copy input samples to the output. | ✅ | |
CopyRand | Copy input samples to the output, forwarding only a randomly selected number of samples. | ❌ | |
lttng::NullSource | Null source that calls an lttng tracepoint for every batch of produced samples. | ❌ | lttng |
lttng:NullSink | Null sink that calls an lttng tracepoint for every batch of received samples. | ❌ | lttng |
I/O
Block | Usage | WebAssembly? |
---|---|---|
BlobToUdp | Push Blobs into a UDP socket. | ❌ |
ChannelSource | Push samples through a channel into a stream connection. | ✅ |
FileSink | Write samples to a file. | ❌ |
FileSource | Read samples from a file. | ❌ |
TcpSource | Reads samples from a TCP socket. | ❌ |
TcpSink | Push samples into a TCP socket. | ❌ |
WebsocketSink | Push samples in a WebSocket. | ❌ |
[zeromq::PubSink] | Push samples into ZeroMQ socket. | ❌ |
[zeromq::SubSource] | Read samples from ZeroMQ socket. | ❌ |
SDR Hardware
Block | Usage | Feature | WebAssembly? |
---|---|---|---|
SeifySink | Transmit samples with a Seify device. | seify | ❌ |
SeifySource | Receive samples from a Seify device. | seify | ❌ |
Hardware Acceleration
Block | Usage | WebAssembly? | Feature |
---|---|---|---|
[Vulkan] | Interface GPU w/ Vulkan. | ❌ | vulkan |
[Wgpu] | Interface GPU w/ native API. | ✅ | wgpu |
[Zynq] | Interface Zynq FPGA w/ AXI DMA (async mode). | ❌ | zynq |
[ZynqSync] | Interface Zynq FPGA w/ AXI DMA (sync mode). | ❌ | zynq |
WASM-specific (target wasm32-unknown-unknown
)
Block | Usage | WebAssembly? |
---|---|---|
HackRf | WASM + WebUSB source for HackRF. | ✅ |
WasmWsSink | Send samples via a WebSocket. | ✅ |
Signal Sources
Block | Usage | WebAssembly? |
---|---|---|
SignalSource | Create signals (sin, cos, square). | ✅ |
Audio (requires audio
feature)
Block | Usage | WebAssembly? |
---|---|---|
AudioSink | Audio sink. | ❌ |
AudioSource | Audio source. | ❌ |
FileSource | Read an audio file and output its samples. | ❌ |
WavSink | Writes samples to a WAV file | ❌ |
Re-exports
pub use signal_source::FixedPointPhase;
pub use signal_source::SignalSourceBuilder;
Modules
- Audio Blocks
- SignalSource using Lookup Tables
Structs
- Automatic Gain Control Block
- Builder for
Agc
block - Apply a function to each sample.
- Apply a function on each input sample to create an iterator and output its values.
- Apply a function to each N input samples, producing M output samples.
- Push Blobs into a UDP socket.
- Push samples through a channel into a stream connection.
- Apply a function to combine two streams into one.
- Log stream data with log::info!.
- Copy input samples to the output.
- Copy input samples to the output, forwarding only a randomly selected number of samples.
- Builder for a CopyRand block
- Delays samples.
- Compute an FFT.
- Write samples to a file.
- FileSourceNon-WebAssemblyRead samples from a file.
- Apply a function, returning an Option to allow filtering samples.
- Repeatedly apply a function to generate samples, using Option values to allow termination.
- FIR filter.
- Create a Fir filter.
- Copies only a given number of samples and stops.
- IIR filter.
- Build an Iir filter.
- Output a given number of messages in one burst and terminate.
- Forward messages.
- Push received messages into a channel.
- Black hole for messages.
- Output the same message periodically.
- MessageSourceBuilderNon-WebAssemblyRepeats a fixed message on an interval
- Drop samples.
- Generate a stream of zeroes.
- Forward the input stream with a given index to the output stream with a given index.
- Apply a function to received samples.
- Repeatedly apply a function to generate samples.
- Apply a function to split a stream.
- Drop samples, printing tags.
- Push samples into a TCP socket.
- Push samples into a TCP socket.
- ThrottleNon-WebAssemblyLimit sample rate.
- Store received samples in vector.
- Build a VectorSink.
- Stream samples from vector.
- Push samples in a WebSocket.
- Build a WebsocketSink.
Enums
- Fft direction.
- Drop Policy for
Selector
block - Operation mode for WebsocketSink.