All Projects → itsubaki → gostream

itsubaki / gostream

Licence: MIT license
Stream Processing Library for Go

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to gostream

product-sp
An open source, cloud-native streaming data integration and analytics product optimized for agile digital businesses
Stars: ✭ 80 (+56.86%)
Mutual labels:  stream-processing, complex-event-processing
openPDC
Open Source Phasor Data Concentrator
Stars: ✭ 109 (+113.73%)
Mutual labels:  stream-processing, complex-event-processing
EsperIoT
Small and simple stream-based CEP tool for IoT devices connected to an MQTT broker
Stars: ✭ 18 (-64.71%)
Mutual labels:  stream-processing, complex-event-processing
vector
A high-performance observability data pipeline.
Stars: ✭ 12,138 (+23700%)
Mutual labels:  stream-processing
kafka-spark-streaming-example
Simple examle for Spark Streaming over Kafka topic
Stars: ✭ 102 (+100%)
Mutual labels:  stream-processing
gretel-python-client
The Gretel Python Client allows you to interact with the Gretel REST API.
Stars: ✭ 28 (-45.1%)
Mutual labels:  stream-processing
kafka-shell
⚡A supercharged, interactive Kafka shell built on top of the existing Kafka CLI tools.
Stars: ✭ 107 (+109.8%)
Mutual labels:  stream-processing
dagger
Dagger is an easy-to-use, configuration over code, cloud-native framework built on top of Apache Flink for stateful processing of real-time streaming data.
Stars: ✭ 238 (+366.67%)
Mutual labels:  stream-processing
csvplus
csvplus extends the standard Go encoding/csv package with fluent interface, lazy stream operations, indices and joins.
Stars: ✭ 67 (+31.37%)
Mutual labels:  stream-processing
qtopology
Distributed stream processing layer
Stars: ✭ 20 (-60.78%)
Mutual labels:  complex-event-processing
mediapipe plus
The purpose of this project is to apply mediapipe to more AI chips.
Stars: ✭ 38 (-25.49%)
Mutual labels:  stream-processing
makinage
Stream Processing Made Easy
Stars: ✭ 31 (-39.22%)
Mutual labels:  stream-processing
open-stream-processing-benchmark
This repository contains the code base for the Open Stream Processing Benchmark.
Stars: ✭ 37 (-27.45%)
Mutual labels:  stream-processing
blockchain-etl-streaming
Streaming Ethereum and Bitcoin blockchain data to Google Pub/Sub or Postgres in Kubernetes
Stars: ✭ 57 (+11.76%)
Mutual labels:  stream-processing
distogram
A library to compute histograms on distributed environments, on streaming data
Stars: ✭ 19 (-62.75%)
Mutual labels:  stream-processing
kafka-workers
Kafka Workers is a client library which unifies records consuming from Kafka and processing them by user-defined WorkerTasks.
Stars: ✭ 30 (-41.18%)
Mutual labels:  stream-processing
esper-demo-nuclear
Simple demo of some features of the Esper Complex Event Processing (CEP) engine.
Stars: ✭ 83 (+62.75%)
Mutual labels:  complex-event-processing
mxfactorial
a payment application intended for deployment by the united states treasury
Stars: ✭ 36 (-29.41%)
Mutual labels:  stream-processing
flink-connectors
Apache Flink connectors for Pravega.
Stars: ✭ 84 (+64.71%)
Mutual labels:  stream-processing
ramen
A stream processing language and compiler for small-scale monitoring
Stars: ✭ 14 (-72.55%)
Mutual labels:  stream-processing

gostream

PkgGoDev Go Report Card tests

Stream Processing Library for Go

TODO

  • Window
    • LengthWindow
    • LengthBatchWindow
    • TimeWindow
    • TimeBatchWindow
  • Select
  • Where
    • Equals, NotEquals
    • Larger, Less
    • AND, OR
  • OrderBy
  • Limit, Offset
  • Aggregate Function
    • Avg, Sum, Count
    • Max, Min

Example

type LogEvent struct {
  Time    time.Time
  Level   int
  Message string
}

q := "select * from LogEvent.length(10)"
s, err := gostream.New().
    Add(LogEvent{}).
    Query(q)
if err != nil {
  fmt.Printf("new gostream: %v", err)
  return
}
defer s.Close()

go func() {
  for {
    fmt.Printf("%v\n", <-s.Output())
  }
}()

s.Input() <- LogEvent{
  Time: time.Now()
  Level: 1
  Message: "something happened"
}
type LogEvent struct {
  Time    time.Time
  Level   int
  Message string
}

s := stream.New().
  SelectAll().
  From(LogEvent{}).
  Length(10).
  OrderBy("Level", stream.DESC).
  Limit(10, 5)
defer s.Close()
go s.Run()

go func() {
  for {
    fmt.Printf("%v\n", <-s.Output())
  }
}()

s.Input() <- LogEvent{
  Time: time.Now()
  Level: 1
  Message: "something happened"
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].