spead2: high-performance data transfer
spead2 is a high-performance implementation of the SPEAD
protocol, with both Python and C++ bindings.
The 2 in the name indicates that this is a new library, compared to the
original (and no longer maintained) PySPEAD library. It implements version 4
of the SPEAD protocol.
While SPEAD stands for “Streaming Protocol for Exchange of Astronomical Data”, it is not specific to astronomy. It is a generic protocol for transmitting arrays of (mostly) numeric data. While it can be used over any packet-based or stream-based transport protocol, it is most commonly deployed over UDP. SPEAD over UDP might be suitable for your application if
the data rate is fixed, such as when it is being produced by some physical sampling process;
the data is largely uniform e.g. rectangular arrays of numeric data whose shape stays constant;
occasional packet loss is acceptable;
you want to multicast the data to multiple subscribers;
you need high performance (100 Gbps+).