go-bitflow is a Go (Golang) library for sending, receiving and transforming streams of data.
The basic data entity is a bitfolw.Sample, which consists of a time.Time timestamp, a vector of float64 values, and a map[string]string of tags.
Samples can be (un)marshalled in CSV and a dense binary format.
The marshalled data can be transported over files, standard I/O channels, or TCP.
A SamplePipeline can be used to pipe a stream of Samples through a chain of transformation or analysis steps implementing the SampleProcessor interface.
The cmd/bitflow-pipeline sub-package provides an executable with the same name.
The pipeline (including data sources, data sinks, pipeline of transformations steps) is defined by a lightweight, domain-specific scripting language (see subpackage script).
Some aspects of the pipeline can also be configured through additional command line flags.
Run bitflow-pipeline --help for a list of command line flags.
Go requirement: at least version 1.11