• Stars
    star
    1,734
  • Rank 25,782 (Top 0.6 %)
  • Language
    Go
  • License
    MIT License
  • Created about 5 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A lightweight stream processing library for Go

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.

Implemented Flows (flow package):

  • Map
  • FlatMap
  • Filter
  • Reduce
  • PassThrough
  • Split
  • FanOut
  • RoundRobin
  • Merge
  • Flatten
  • Batch
  • Throttler
  • SlidingWindow
  • TumblingWindow
  • SessionWindow

Supported Connectors:

Examples

Usage samples are available in the examples directory.

License

Licensed under the MIT License.

More Repositories

1

go-quartz

Minimalist and zero-dependency scheduling library for Go
Go
1,635
star
2

dev-tools

Widely used software developer tools in a single application
Java
282
star
3

wifiqr

Create a QR code with your Wi-Fi login details
Go
250
star
4

async

Synchronization and asynchronous computation package for Go
Go
181
star
5

equalizer

A set of performant rate limiters for Go
Go
77
star
6

auth-server

Simple authentication and authorization service
Go
69
star
7

tpack

Pack a Go workflow/function as a Unix-style pipeline command
Go
55
star
8

rspark

▁▂▆▇▁▄█▁ Sparklines for Rust apps
Rust
49
star
9

sketch

An image manipulation library for Kotlin
Kotlin
45
star
10

kotlin-backoff

An exponential backoff library for Kotlin
Kotlin
40
star
11

gemini-cli

A command-line interface (CLI) for Google Gemini
Go
36
star
12

fsweeper

A file management automation tool
Go
30
star
13

go-traits

A concept package that helps implement mixin behavior using embedded structs and hook interfaces.
Go
22
star
14

scala-statecharts

Scala statecharts collection (FSM, UML)
Scala
12
star
15

dynamic

A Scala library that allows copying a case class using a dynamic property name
Scala
11
star
16

aerospike-client-scala

Idiomatic and reactive Scala client for Aerospike database
Scala
10
star
17

kafka-aerospike-state-store

Kafka Streams custom persistent StateStore backed by Aerospike
Java
9
star
18

memento

Kafka messages non-blocking reprocessor and delayed producer service
Scala
9
star
19

gravity

An efficient Java substring search library
Java
8
star
20

scalikejackson

Lightweight Scala JSON library
Scala
7
star
21

github-action-aerospike

GitHub Action to set up an Aerospike database
Shell
6
star
22

aerospike-client-kotlin

Aerospike Client for Kotlin
Kotlin
4
star
23

aerospike-cli

A command line utility to query the Aerospike database using SQL
Kotlin
4
star
24

micrometer-registry-aerospike

A Micrometer MeterRegistry for Aerospike
Java
3
star
25

github-action-pulsar

GitHub Action to set up Apache Pulsar
Shell
3
star
26

pkgslog

A package level structured log/slog handler for Go
Go
2
star
27

pyloc

Python implementation of tool for counting lines of code
Python
2
star