Skip to content

rnett/symbol-export

Repository files navigation

Maven Central Version Maven snapshots Documentation GitHub License

Symbol-export

Symbol-export is a tool for exporting symbols from Kotlin libraries so that they can be referenced by tooling such as compile plugins or annotation processors.

Features:

  • Compile time errors if symbol names change
  • Integrations with the Kotlin compiler, KSP, and Kotlinpoet
  • Reading and writing of annotation instances

Getting started

All you need to do is apply the Gradle plugins to the appropriate projects and add a dependency between the exported symbols and the project that uses them.

Exporting project

build.gradle.kts
plugins {
    id("dev.rnett.symbol-export.export")
}

name = "foobar"
Your code
package foo.bar

@ExportSymbol
fun bar() {
}

@ExportSymbol
class FooService {
}

Importing project

build.gradle.kts
plugins {
    id("dev.rnett.symbol-export.import")
}

dependencies {
    importSymbols(project(":foobar"))
}
Your code
val bar = Symbols.foobar.foo_bar_bar
val fooService = Symbols.foobar.foo_bar_FooService

By default, the Symbols object is generated with a package matching the importing project's group ID.

Documentation

Documentation can be found at symbol-export.rnett.dev.

About

A tool to export Kotlin symbols for reference by code generators

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •