All Projects → evolution-gaming → skafka

evolution-gaming / skafka

Licence: MIT license
Scala wrapper for kafka consumer and producer

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to skafka

influencer-stats
Playground for measuring performance of functional programming tools in Scala. Gathers statistics about videos.
Stars: ✭ 24 (-31.43%)
Mutual labels:  cats, cats-effect
tagless-final-jam
Workshop On Tagless Final Interpreters
Stars: ✭ 37 (+5.71%)
Mutual labels:  cats, cats-effect
console4cats
💻 Effect-type agnostic Console I/O for Cats Effect (archived, use Cats Effect 3 instead)
Stars: ✭ 55 (+57.14%)
Mutual labels:  cats, cats-effect
classy-optics
🔎 Source code shown at my talks at Scale by the Bay 2018 and Scalar 2019
Stars: ✭ 25 (-28.57%)
Mutual labels:  cats, cats-effect
tinyweb
Simple and lightweight HTTP async server for micropython
Stars: ✭ 182 (+420%)
Mutual labels:  cats, cats-effect
pfps-examples
🏮 Standalone examples shown in the book "Practical FP in Scala: A hands-on approach"
Stars: ✭ 167 (+377.14%)
Mutual labels:  cats, cats-effect
vault4s
Vault Client Library For Scala
Stars: ✭ 15 (-57.14%)
Mutual labels:  cats, cats-effect
fs2-ftp
Simple client for Ftp/Ftps/Sftp
Stars: ✭ 24 (-31.43%)
Mutual labels:  cats, cats-effect
Monix
Asynchronous, Reactive Programming for Scala and Scala.js.
Stars: ✭ 1,819 (+5097.14%)
Mutual labels:  cats, cats-effect
swam
WebAssembly engine in Scala
Stars: ✭ 38 (+8.57%)
Mutual labels:  cats, cats-effect
telegramium
Telegramium or F[ Tg ] - pure functional Telegram Bot API implementation for Scala.
Stars: ✭ 42 (+20%)
Mutual labels:  cats, cats-effect
scala-functional-programming-tutorial
Functional Programming in Scala Tutorial
Stars: ✭ 23 (-34.29%)
Mutual labels:  cats, cats-effect
tradeio
A disciplined way to purely functional domain models in Scala
Stars: ✭ 19 (-45.71%)
Mutual labels:  cats, cats-effect
typelevel-stack.g8
📚 Unofficial Giter8 template for the Typelevel Stack (Http4s / Doobie / Circe / Cats Effect / Fs2) based on Cats v1.x.x
Stars: ✭ 63 (+80%)
Mutual labels:  cats, cats-effect
fs2-ssh
A wrapper around Apache SSHD targeting cats-effect and fs2
Stars: ✭ 36 (+2.86%)
Mutual labels:  cats, cats-effect
cats-helper
Helpers for cats & cats-effect
Stars: ✭ 19 (-45.71%)
Mutual labels:  cats, cats-effect
cats-effect-testing
Integration between cats-effect and test frameworks
Stars: ✭ 155 (+342.86%)
Mutual labels:  cats, cats-effect
tutorials
🎥 Source code of the examples shown in the video tutorials
Stars: ✭ 18 (-48.57%)
Mutual labels:  cats, cats-effect
blockchain-rpc
JSON RPC client for Bitcoin, Ethereum and Omni
Stars: ✭ 26 (-25.71%)
Mutual labels:  cats
freecli
Command line parsing library using Free Applicative
Stars: ✭ 29 (-17.14%)
Mutual labels:  cats

Skafka

Build Status Coverage Status Codacy Badge Version License: MIT

Scala wrapper for kafka-clients v2.7.1

Key features

  1. It provides null-less Scala apis for Producer & Consumer

  2. Makes it easy to use your effect monad with help of cats-effect

  3. Blocking calls are being executed on provided ExecutionContext.

  4. Simple case class based configuration

  5. Support of typesafe config

Producer usage example

val producer = Producer.of[IO](config, ecBlocking)
val metadata: IO[RecordMetadata] = producer.use { producer =>
  val record = ProducerRecord(topic = "topic", key = "key", value = "value") 
  producer.send(record).flatten 
}

Consumer usage example

val consumer = Consumer.of[IO, String, String](config, ecBlocking)
val records: IO[ConsumerRecords[String, String]] = consumer.use { consumer => 
  for {
    _       <- consumer.subscribe(Nel("topic"), None)
    records <- consumer.poll(100.millis)
  } yield records 
}

Setup

addSbtPlugin("com.evolution" % "sbt-artifactory-plugin" % "0.0.2")

libraryDependencies += "com.evolutiongaming" %% "skafka" % "11.5.0"
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].