Functional backpressured streams for consuming and producing Kafka records. Exposes a small interface, while taking care of common functionality: batch consuming and producing records, batched offset commits, offset commit recovery, and topic administration, while also simplifying client configuration.
Documentation is kept up-to-date, currently documenting v3.0.0-M8 on Scala 2.13.
To get started with sbt, simply add the following line to your
libraryDependencies += "com.github.fd4s" %% "fs2-kafka" % "3.0.0-M8"
Published for Scala 2.12, 2.13 and 3.1. For changes, refer to the release notes.
For Scala 2.12, enable partial unification by adding the following line to
scalacOptions += "-Ypartial-unification"
resolvers += "confluent" at "https://packages.confluent.io/maven/" libraryDependencies += "com.github.fd4s" %% "fs2-kafka-vulcan" % "3.0.0-M8"
libraryDependencies += "com.github.fd4s" %% "fs2-kafka-vulcan-testkit-munit" % "3.0.0-M8"
Stable release artifacts are signed with the
E97C 64AB 4987 7F74 key.
Backwards binary-compatibility for the library is guaranteed between minor and patch versions.
3.a.b is backwards binary-compatible with
3.c.d for any
a > c or
a = c and
b > d.
Please note binary-compatibility is not guaranteed between milestone releases.
To use the latest snapshot release, add the following lines to your
resolvers += Resolver.sonatypeRepo("snapshots") libraryDependencies += "com.github.fd4s" %% "fs2-kafka" % "3.0.0-M8"
Refer to the table below for dependencies and version support across modules.
|FS2 3.2.5, Apache Kafka Client 2.8.1||Scala 2.12, 2.13 and 3.1|
|Vulcan 1.8.3, Confluent Kafka Avro Serializer 6.2.5||Scala 2.12, 2.13 and 3.1|
Library is heavily inspired by ideas from Alpakka Kafka.