Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use kotlinx serializer native features #148

Closed
Chuckame opened this issue Jun 16, 2023 · 7 comments
Closed

Use kotlinx serializer native features #148

Chuckame opened this issue Jun 16, 2023 · 7 comments
Labels
enhancement New feature or request

Comments

@Chuckame
Copy link
Contributor

This issue will be the follow up to assist the long way of using native kotlinx serialization features like @Contextual, @SerialName, serializerModules and much more to unlock native features like value classes, serialization modules declaration, custom serializers.

This work would touch to the schema generation and the encoding/decoding codebase, while we will try to not touch the user entrypoint Avro.

@Chuckame
Copy link
Contributor Author

Feature for @SerialName:
Since there isn't native serial namespace annotation, when we set a serial name that contains dots, we can set the namespace using everything before the latest dot, and set the schema name from the last word after the latest dot

@Chuckame
Copy link
Contributor Author

Thanks to @thake fixed the release issue, I'll work on it in next weeks

@Chuckame
Copy link
Contributor Author

@thake Currently working on it, and found a way of encode every possible schema. I'll push the pr (wip) in next days. It will come with other fixes and optimisations.

@Chuckame Chuckame added the enhancement New feature or request label Aug 28, 2023
@Chuckame
Copy link
Contributor Author

Some primitives (char, byte, short) are going to be handled by default as int

@Chuckame
Copy link
Contributor Author

We will be allowed of serializing unions with non-record types (like union of double, string and records by example)

@Chuckame
Copy link
Contributor Author

Chuckame commented Aug 29, 2023

AvroInline will be removed in favour of kotlin native value class because this annotation is only targeting classes with only one field. If users want to migrate, just @AvroInline data class Something(val field: Data) will become @JvmInline value class Something(val field: Data), that's all.

@Chuckame
Copy link
Contributor Author

Chuckame commented Feb 8, 2024

Closing this issue as it is too global to be implemented atomically. Also, it will be covered by multiple issues #114 #187 #166 #165 #160 #151 #114 #131

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant