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!. | ✅ |
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? |
---|---|---|
WasmSdr | Receive samples from web world. | ✅ |
WasmWsSink | Send samples via a WebSocket. | ✅ |
WasmFreq | Push samples to a GUI sink. | ✅ |
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::SignalSourceBuilder;
pub use sink::Sink;
Modules
Structs
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 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.
Create a CopyRand block.
Compute an FFT.
Write samples to a file.
FileSourceNon-WebAssembly
Read samples from a file.
Repeatedly apply a function to generate samples, using Option values to allow termination.
FIR filter.
Create a Fir filter.
Fixed point implementation of phase value based on i32
fixed pt radians
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.
Build a MessageBurst.
Forward messages.
Push received messages into a channel.
Black hole for messages.
Output the same message periodically.
MessageSourceBuilderNon-WebAssembly
Repeats 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.
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-WebAssembly
Limit sample rate.
Store received samples in vector.
Build a VectorSink.
Stream samples from vector.
Push samples in a WebSocket.
Build a WebsocketSink.