xref: /aosp_15_r20/external/ksp/README.md (revision af87fb4bb8e3042070d2a054e912924f599b22b7)
1# Kotlin Symbol Processing API
2
3Welcome to KSP!
4
5Kotlin Symbol Processing (KSP) is an API that you can use to develop
6lightweight compiler plugins. KSP provides a simplified compiler plugin
7API that leverages the power of Kotlin while keeping the learning curve at
8a minimum. Compared to KAPT, annotation processors that use KSP can run up to 2x faster.
9
10Most of the documentation of KSP can be found on [kotlinlang.org](https://kotlinlang.org/docs/ksp-overview.html). Here are some handy links:
11
12* [Overview](https://kotlinlang.org/docs/ksp-overview.html)
13* [Quickstart](https://kotlinlang.org/docs/ksp-quickstart.html)
14* [Libraries that support KSP](https://kotlinlang.org/docs/ksp-overview.html#supported-libraries)
15* [Why KSP?](https://kotlinlang.org/docs/ksp-why-ksp.html)
16* [Examples](https://kotlinlang.org/docs/ksp-examples.html)
17* [How KSP models Kotlin code](https://kotlinlang.org/docs/ksp-additional-details.html)
18* [Reference for Java annotation processor authors](https://kotlinlang.org/docs/ksp-reference.html)
19* [Incremental processing notes](https://kotlinlang.org/docs/ksp-incremental.html)
20* [Multiple round processing notes](https://kotlinlang.org/docs/ksp-multi-round.html)
21* [KSP on multiplatform projects](https://kotlinlang.org/docs/ksp-multiplatform.html)
22* [Running KSP from command line](https://kotlinlang.org/docs/ksp-command-line.html)
23* [FAQ](https://kotlinlang.org/docs/ksp-faq.html)
24
25## Feedback and Bug Reporting
26
27[Please let us know what you think about KSP by filing a Github issue](https://github.com/google/ksp/issues)
28or connecting with our team in the `#ksp` channel in the
29[Kotlin Slack workspace](https://kotlinlang.slack.com/)!
30
31If you are interested in sending PRs, please also check out the [Contributor guide](CONTRIBUTING.md).
32
33## Ongoing and Future Works
34
35Here are some planned features that have not yet been completely implemented:
36* Support [new Kotlin compiler](https://kotlinlang.org/docs/roadmap.html)
37* Improve support to multiplatform. E.g., running KSP on a subset of targets / sharing computations between targets
38* Improve performance. There a bunch of optimizations to be done!
39* Make the IDE aware of the generated code
40* Keep fixing bugs!