All Projects → rewardStyle → kinetic

rewardStyle / kinetic

Licence: MIT License
High-Performance AWS Kinesis Client for Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to kinetic

aws-kinesis-consumer
Consume an AWS Kinesis Data Stream to look over the records from a terminal.
Stars: ✭ 23 (+15%)
Mutual labels:  stream, kinesis
discord-ytdl-core
Simple ytdl wrapper for discord bots with custom ffmpeg args support.
Stars: ✭ 52 (+160%)
Mutual labels:  stream
reactive-rs
Streams and broadcasts: functional reactive programming in Rust.
Stars: ✭ 28 (+40%)
Mutual labels:  stream
amazon-kinesis-archiver
An AWS Lambda module and node.js library to facilitate Amazon Kinesis archival and replay
Stars: ✭ 29 (+45%)
Mutual labels:  kinesis
lazy-arr
Arrays that look just like regular JavaScript arrays, but are computed lazily.
Stars: ✭ 67 (+235%)
Mutual labels:  stream
simple-concat
Super-minimalist version of `concat-stream`. Less than 15 lines!
Stars: ✭ 21 (+5%)
Mutual labels:  stream
hipipe
Super fast C++17 data transformation pipeline (with Python interface).
Stars: ✭ 16 (-20%)
Mutual labels:  stream
gnip
Connect to Gnip streaming API and manage rules
Stars: ✭ 28 (+40%)
Mutual labels:  stream
ngx stream upstream check module
nginx health checker (tcp/udp/http) for stream upstream servers.
Stars: ✭ 18 (-10%)
Mutual labels:  stream
pv
Unix Pipe Viewer (pv) utility in Node.js
Stars: ✭ 20 (+0%)
Mutual labels:  stream
cpsfy
🚀 Tiny goodies for Continuation-Passing-Style functions, fully tested
Stars: ✭ 58 (+190%)
Mutual labels:  stream
youtube-play
🎵 A command-line utility which streams music from YouTube
Stars: ✭ 47 (+135%)
Mutual labels:  stream
firebase
Firebase Go REST SDK
Stars: ✭ 22 (+10%)
Mutual labels:  stream
moestreamer
macOS menubar music player
Stars: ✭ 17 (-15%)
Mutual labels:  stream
CloudWatch2S3
Logging infrastructure for exporting all CloudWatch logs from multiple accounts to a single S3 bucket
Stars: ✭ 31 (+55%)
Mutual labels:  kinesis
cthulhu
Cthulhu is a simple python CLI application that streams torrents directly from various sources.
Stars: ✭ 26 (+30%)
Mutual labels:  stream
laav
Asynchronous Audio / Video Library for H264 / MJPEG / OPUS / AAC / MP2 encoding, transcoding, recording and streaming from live sources
Stars: ✭ 50 (+150%)
Mutual labels:  stream
parallel stream
A parallelized stream implementation for Elixir
Stars: ✭ 86 (+330%)
Mutual labels:  stream
prox
A Scala library for working with system processes
Stars: ✭ 93 (+365%)
Mutual labels:  stream
secure-webrtc-swarm
💢 Create a swarm of p2p connections with invited peers using WebRTC.
Stars: ✭ 23 (+15%)
Mutual labels:  stream

GoDoc Circle CI

kinetic

Kinetic is an MIT-licensed high-performance AWS Kinesis Client for Go

Kinetic wraps sendgridlabs go-kinesis library to provide maximum throughput for AWS Kinesis producers and consumers. An instance of a Kinetic listener/producer is meant to be used for each shard, so please use it accordingly. If you use more than one instance per-shard then you will hit the AWS Kinesis throughput limits.

Getting Started

Before using kinetic, you should make sure you have a created a Kinesis stream and your configuration file has the credentails necessary to read and write to the stream. Once this stream exists in AWS, kinetic will ensure it is in the "ACTIVE" state before running.

Testing

Tests are written using goconvey and kinesalite. Make sure you have kinesalite running locally before attempting to run the tests. They can be run either via the comamnd line:

$ go test -v -cover -race

or via web interface:

$ goconvey

Running

Kinetic can be used to interface with kinesis like so:

import "github.com/rewardStyle/kinetic"

// Use configuration in /etc/kinetic.conf
listener, _ := new(kinetic.Listener).Init()

// Use custom configuration
producer, _ := new(kinetic.Producer).InitC("your-stream", "0", "shard-type", "accesskey", "secretkey", "region", 10)

producer.Send(new(kinetic.Message).Init([]byte(`{"foo":"bar"}`), "test"))

// Using Retrieve
msg, err := listener.Retrieve()
if err != nil {
    println(err)
}

println(string(msg))

// Using Listen - will block unless sent in goroutine
go listener.Listen(func(msg []byte, wg *sync.WaitGroup) {
    println(string(msg))
    wg.Done()
})

producer.Send(new(KinesisMessage).Init([]byte(`{"foo":"bar"}`), "test"))

listener.Close()
producer.Close()

// Or with Kinesis Firehose
firehose, err := new(kinetic.Producer).Firehose()
if err != nil {
    println(err)
}

firehose.Send(new(KinesisMessage).Init([]byte(`{"foo":"bar"}`), "test"))

firehose.Close()

For more examples take a look at the tests. API documentation can be found here.

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].