Highlights
Welcome to confluent's schema registry kafka serializer !
A new module has been create to allow (de)serializing kotlin classes and primitive, natively with avro4k, in kafka, using the confluent's schema registry! This enables the use of avro4k in spring and other frameworks using kafka serializers.
As this module is new, don't hesitate to propose enhancements and file an issue in case of a bug!
For more details on how to use it, here is the documentation 📝
Generic decoding
Avro4k now supports decoding to Any
type, which means that you can still use avro4k even for unknown data type, or non-concrete classes! So you can also decode to List<Any>
and all the possible generic types 🚀
New experimental / internal annotations
There are 2 new annotations indicating whether a class/method should be used cautiously:
@InternalAvro4kApi
which indicates an internal API that shouldn't be used by you, which has been made public to expose internal apis to other modules. If you need them, please file an issue, and don't be surprised in case of breaking change!@ExperimentalAvro4kApi
indicating an API that could evolve, but with notice. They are set as experimental when the API is quite new or there isn't enough feedback. Also, these could be removed in the future on case of a bug induced by them. In any case, they should follow the semantic versioning, so do not expect breaking that quickly!
Deprecations
- Okio support will be dropped in the next major release, replaced by kotlinx-io
- Generic data extensions will be dropped in the next major release, replaced by the new kafka serializer
What's Changed
Features
- feat: Add kafka-serializer by @Chuckame in #295
- feat: Allow generic de-serializing of Any type by @Chuckame in #337
- feat: Integrate kotlinx-io and deprecate okio by @Chuckame in #272
- feat: Allow decoding a generic record to a class with type parameters by @Chuckame in #339
- feat: Add @InternalAvro4kApi and @ExperimentalAvro4kApi by @Chuckame in #344
Others
- chore: regenerate list benchmark by @Chuckame in #306
- chore: Use WeakHashMap instead of buggy WeakIdentityHashMap by @Chuckame in #308
- deps: Upgrade to kotlin 2.1.21 by @Chuckame in #305
- Deprecate unwanted public APIs by @Chuckame in #307
- deps: Upgrade to gradle 8.14.2 by @Chuckame in #309
- chore: Add missing @ExperimentalSerializationApi on AvroObjectContainer by @Chuckame in #310
- build(deps): bump io.mockk:mockk from 1.13.6 to 1.14.4 by @dependabot[bot] in #313
- build(deps): bump com.diffplug.spotless from 7.0.2 to 7.0.4 by @dependabot[bot] in #312
- chore: Improve documentation of Avro API by @Chuckame in #316
- doc: Add jvm streams examples by @Chuckame in #321
- chore: Notice bad 1.12.0 avro version in README by @Chuckame in #326
- build(deps): bump jacksonVersion from 2.18.2 to 2.19.1 by @dependabot[bot] in #314
- build(deps): bump org.jetbrains.kotlinx:kotlinx-benchmark-runtime from 0.4.13 to 0.4.14 by @dependabot[bot] in #322
- build(deps): bump org.jetbrains.kotlinx.binary-compatibility-validator from 0.17.0 to 0.18.0 by @dependabot[bot] in #323
- build(deps): bump com.squareup.okio:okio from 3.9.0 to 3.15.0 by @dependabot[bot] in #324
- build(deps): bump org.jetbrains.kotlinx.binary-compatibility-validator from 0.18.0 to 0.18.1 by @dependabot[bot] in #330
- build(deps): bump com.diffplug.spotless from 7.0.4 to 7.1.0 by @dependabot[bot] in #329
- build(deps): bump jacksonVersion from 2.19.1 to 2.19.2 by @dependabot[bot] in #334
- build(deps): bump com.diffplug.spotless from 7.1.0 to 7.2.1 by @dependabot[bot] in #333
- build(deps): bump io.mockk:mockk from 1.14.4 to 1.14.5 by @dependabot[bot] in #335
- Chore/improvements by @Chuckame in #327
- build(deps): bump kotlinxSerialization from 1.8.1 to 1.9.0 by @dependabot[bot] in #315
- build(deps): bump com.squareup.okio:okio from 3.15.0 to 3.16.0 by @dependabot[bot] in #338
- deps: Upgrade to kotlin 2.2.10 by @Chuckame in #345
- deps: Improve github actions by @Chuckame in #346
- deps: Bump gradle from 8.14.2 to 9.0.0 by @Chuckame in #347
- docs: Show confluent-kafka-serializer module in main doc by @Chuckame in #348
- feat(confluent-kafka-serializer): Support
java-element-class
andjava-key-class
schema props by @Chuckame in #349 - fix: Disable gradle cache feature by @Chuckame in #350
- fix: rollback released artifact signing by @Chuckame in #351
- build: move core src in its own module, and add conventions plugins by @Chuckame in #352
- fixing release by @Chuckame in #353
- build: try fixing release again by @Chuckame in #354
- build: fix release again by @Chuckame in #355
- fix: bad release name by @Chuckame in #356
- build: allow creating draft release by @Chuckame in #357
- build: fix release again by @Chuckame in #358
- build: unify version by @Chuckame in #359
Full Changelog: v2.3.0...v2.4.0