Skip to content

reugn/go-streams

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
February 3, 2023 14:36
November 23, 2021 16:52
ws
February 3, 2023 14:36
November 26, 2021 11:03
November 27, 2021 12:42
December 1, 2019 19:53
April 30, 2019 20:31
October 17, 2022 12:23
December 18, 2020 16:51
October 17, 2022 12:19
December 18, 2020 16:05
November 21, 2021 18:22

go-streams

Build PkgGoDev Go Report Card codecov

A lightweight stream processing library for Go.
go-streams provides a simple and concise DSL to build data pipelines. pipeline-architecture-example

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:

Examples

Usage samples are available in the examples directory.

License

Licensed under the MIT License.