Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reugn/go-streams
A lightweight stream processing library for Go
https://github.com/reugn/go-streams
aerospike data-pipeline data-stream etl kafka kafka-streams low-code nats-streaming pipeline pulsar redis stream-processing stream-processor streaming-api streaming-data streams throttling websocket windowing workflow
Last synced: about 2 months ago
JSON representation
A lightweight stream processing library for Go
- Host: GitHub
- URL: https://github.com/reugn/go-streams
- Owner: reugn
- License: mit
- Created: 2019-04-30T17:28:15.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-19T13:14:12.000Z (2 months ago)
- Last Synced: 2024-04-20T14:01:32.146Z (2 months ago)
- Topics: aerospike, data-pipeline, data-stream, etl, kafka, kafka-streams, low-code, nats-streaming, pipeline, pulsar, redis, stream-processing, stream-processor, streaming-api, streaming-data, streams, throttling, websocket, windowing, workflow
- Language: Go
- Homepage: https://pkg.go.dev/github.com/reugn/go-streams
- Size: 379 KB
- Stars: 1,746
- Watchers: 26
- Forks: 142
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Lists
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go-extra - go-streams - 04-30T17:28:15Z|2022-06-01T08:26:53Z| (Stream Processing / HTTP Clients)
- awesome-go-cn - go-streams
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- go-awesome - go-streams
- awesome-go - go-streams - Go stream processing library. Stars:`1.7K`. (Stream Processing / HTTP Clients)
- awesome - reugn/go-streams - A lightweight stream processing library for Go (Go)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go-projects - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go-cn - go-streams - streams) [![godoc][D]](https://godoc.org/github.com/reugn/go-streams) (流处理 / HTTP客户端)
- go-awesome-cn-star - go-streams
- zero-alloc-awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go-stars - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-reader - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go-with-stars - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- repo-1316-awesome-go-cn - go-streams - streams) (流处理 / HTTP客户端)
- repo-1211-awesome-go-cn - go-streams - streams) (流处理 / HTTP客户端)
- awesome-go-zh - go-streams - streams) (流处理 / HTTP客户端)
- awesome-Char - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- Go-awesome - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go-cn - go-streams - streams) (流处理 / HTTP客户端)
- my-awesome - reugn/go-streams - pipeline,data-stream,etl,kafka,kafka-streams,low-code,nats-streaming,pipeline,pulsar,redis,stream-processing,stream-processor,streaming-api,streaming-data,streams,throttling,websocket,windowing,workflow pushed_at:2024-05 star:1.8k fork:0.1k A lightweight stream processing library for Go (Go)
- awesome - go-streams - Go stream processing library (Go)
- go-awesome - go streams
- awesome-edge - Go Streams - A lightweight stream processing library for Go (_Table of Contents_ / On-Prem)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
- awesome-go - go-streams - Go stream processing library. (Stream Processing / HTTP Clients)
README
# go-streams
[![Build](https://github.com/reugn/go-streams/actions/workflows/build.yml/badge.svg)](https://github.com/reugn/go-streams/actions/workflows/build.yml)
[![PkgGoDev](https://pkg.go.dev/badge/github.com/reugn/go-streams)](https://pkg.go.dev/github.com/reugn/go-streams)
[![Go Report Card](https://goreportcard.com/badge/github.com/reugn/go-streams)](https://goreportcard.com/report/github.com/reugn/go-streams)
[![codecov](https://codecov.io/gh/reugn/go-streams/branch/master/graph/badge.svg)](https://codecov.io/gh/reugn/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](https://en.wikipedia.org/wiki/Pipeline_(computing))
> 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](https://github.com/reugn/go-streams/tree/master/flow) package):
* Map
* FlatMap
* Filter
* Reduce
* PassThrough
* Split
* FanOut
* RoundRobin
* Merge
* Flatten
* Batch
* Throttler
* SlidingWindow
* TumblingWindow
* SessionWindowSupported Connectors:
* Go channels
* File system
* Network (TCP, UDP)
* WebSocket
* [Aerospike](https://www.aerospike.com/)
* [Apache Kafka](https://kafka.apache.org/)
* [Apache Pulsar](https://pulsar.apache.org/)
* [NATS](https://nats.io/)
* [Redis](https://redis.io/)## Examples
Usage samples are available in the examples directory.## License
Licensed under the MIT License.