go-streams alternatives and similar packages
Based on the "Stream Processing" category.
Alternatively, view go-streams alternatives based on common mentions on social networks and blogs.
-
goio
An implementation of IO, Stream, Fiber for golang inspired by cats and fs2
Free Global Payroll designed for tech teams
Do you think we are missing an alternative of go-streams or a related project?
README
go-streams
A lightweight stream processing library for Go.
go-streams
provides a simple and concise DSL to build data pipelines.
[pipeline-architecture-example](./docs/images/pipeline-architecture-example.png)
Wiki
In computing, a pipeline, also known as a data pipeline, is a set of data processing elements connected in series, where the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion. Some amount of buffer storage is often inserted between elements.
Overview
Building blocks:
- Source - A Source is a set of stream processing steps that has one open output.
- Flow - A Flow is a set of stream processing steps that has one open input and one open output.
- Sink - A Sink is a set of stream processing steps that has one open input. Can be used as a Subscriber.
Flow capabilities (flow package):
- Map
- FlatMap
- Filter
- Reduce
- PassThrough
- Split
- FanOut
- RoundRobin
- Merge
- Flatten
- Throttler
- SlidingWindow
- TumblingWindow
- SessionWindow
Supported Connectors:
- Go channels
- File system
- Network (TCP, UDP)
- WebSocket
- Aerospike
- Apache Kafka
- Apache Pulsar
- NATS
- Redis
Examples
Usage samples are available in the examples directory.
License
Licensed under the MIT License.
*Note that all licence references and agreements mentioned in the go-streams README section above
are relevant to that project's source code only.