Avro source code generator for kotlin

Compilers for Avro IDL and JSON. Compiles to avro4k compatible kotlin files

License

License

GroupId

GroupId

com.github.thake.avro4k
ArtifactId

ArtifactId

avro4k-parent
Last Version

Last Version

0.5.0
Release Date

Release Date

Type

Type

pom
Description

Description

Avro source code generator for kotlin
Compilers for Avro IDL and JSON. Compiles to avro4k compatible kotlin files
Project URL

Project URL

https://github.com/thake/avro4k-compiler
Source Code Management

Source Code Management

https://github.com/thake/avro4k-compiler

Download avro4k-parent

Filename Size
avro4k-parent-0.5.0.pom 13 KB
Browse

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.thake.avro4k/avro4k-parent/ -->
<dependency>
    <groupId>com.github.thake.avro4k</groupId>
    <artifactId>avro4k-parent</artifactId>
    <version>0.5.0</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/com.github.thake.avro4k/avro4k-parent/
implementation 'com.github.thake.avro4k:avro4k-parent:0.5.0'
// https://jarcasting.com/artifacts/com.github.thake.avro4k/avro4k-parent/
implementation ("com.github.thake.avro4k:avro4k-parent:0.5.0")
'com.github.thake.avro4k:avro4k-parent:pom:0.5.0'
<dependency org="com.github.thake.avro4k" name="avro4k-parent" rev="0.5.0">
  <artifact name="avro4k-parent" type="pom" />
</dependency>
@Grapes(
@Grab(group='com.github.thake.avro4k', module='avro4k-parent', version='0.5.0')
)
libraryDependencies += "com.github.thake.avro4k" % "avro4k-parent" % "0.5.0"
[com.github.thake.avro4k/avro4k-parent "0.5.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.slf4j : slf4j-api jar 1.7.30

test (1)

Group / Artifact Type Version
org.slf4j : slf4j-simple jar 1.7.30

Project Modules

  • compiler
  • maven-plugin

Avro compiler for avro4k

This is a generator for avro4k compatible kotlin source files. The generator is based on the avro java compiler.

Unsupported features:

  • Protocol generation
  • Union types other than a Union with null

Additional features:

  • Kotlin data classes may have a different name than avro records.

Compatibility:

  • < 0.5.0 Avro4k 0.41.0
  • 0.5.0 Avro4k 1.0.0 (package names have changed)

Maven plugin usage:

<build>
    <plugins>
        <plugin>
            <groupId>com.github.thake.avro4k</groupId>
            <artifactId>avro4k-maven-plugin</artifactId>
            <version>0.5.0</version>
            <configuration>
                <sourceDirectory>${avro.schema.directory}</sourceDirectory>
                <outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
                <renamedClasses>
                    <renamedClass>
                        <regex>my.namespace.(\w+)Record</regex>
                        <replacement>other.namespace.$1</replacement>
                    </renamedClass>
                </renamedClasses>
            </configuration>            				        
        </plugin>
        ...
    </plugins>
</build>

Versions

Version
0.5.0
0.4.0
0.3.0
0.2.0
0.0.1