{"id":20340349,"url":"https://github.com/toolisticon/kotlin-code-generation","last_synced_at":"2025-10-11T13:35:59.077Z","repository":{"id":247550688,"uuid":"804098315","full_name":"toolisticon/kotlin-code-generation","owner":"toolisticon","description":"Opinionated setup for kotlin-poet code generator projects","archived":false,"fork":false,"pushed_at":"2025-08-26T09:07:24.000Z","size":556,"stargazers_count":2,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-08-26T11:37:43.554Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/toolisticon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-22T00:28:50.000Z","updated_at":"2025-08-26T09:07:27.000Z","dependencies_parsed_at":"2024-08-29T22:14:22.645Z","dependency_job_id":"bf8317ab-0edd-446e-932d-2ecc721d5465","html_url":"https://github.com/toolisticon/kotlin-code-generation","commit_stats":null,"previous_names":["toolisticon/kotlin-code-generation"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/toolisticon/kotlin-code-generation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fkotlin-code-generation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fkotlin-code-generation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fkotlin-code-generation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fkotlin-code-generation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toolisticon","download_url":"https://codeload.github.com/toolisticon/kotlin-code-generation/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolisticon%2Fkotlin-code-generation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273271909,"owners_count":25075969,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T21:21:15.612Z","updated_at":"2025-10-11T13:35:59.071Z","avatar_url":"https://github.com/toolisticon.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kotlin-code-generation\n\nThe one-stop lib for code generation for kotlin (jvm) and code generation testing. Based on [kotlin-poet](https://square.github.io/kotlinpoet/).\n\n[![stable](https://img.shields.io/badge/lifecycle-STABLE-green.svg)](https://github.com/holisticon#open-source-lifecycle) \n[![Maven Central Version](https://img.shields.io/maven-central/v/io.toolisticon.kotlin.generation/kotlin-code-generation-bom)](https://central.sonatype.com/namespace/io.toolisticon.kotlin.generation)\n[![Build Status](https://github.com/toolisticon/kotlin-code-generation/workflows/Development%20branches/badge.svg)](https://github.com/toolisticon/kotlin-code-generation/actions)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/e493c246c3684b95a2ef097ae912d45a)](https://app.codacy.com/gh/toolisticon/kotlin-code-generation/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![codecov](https://codecov.io/gh/toolisticon/kotlin-code-generation/graph/badge.svg?token=kyJ82m5DAT)](https://codecov.io/gh/toolisticon/kotlin-code-generation)\n[![Kotlin](https://img.shields.io/badge/kotlin-2.2.20-blue.svg?logo=kotlin)](http://kotlinlang.org)\n[![sponsored](https://img.shields.io/badge/sponsoredBy-Holisticon-RED.svg)](https://holisticon.de/)\n[![javadoc](https://javadoc.io/badge2/io.toolisticon.kotlin.generation/kotlin-code-generation/javadoc.svg)](https://javadoc.io/doc/io.toolisticon.kotlin.generation/kotlin-code-generation)\n\n**Usage:**\n\n```xml\n\u003cdependencyManagement\u003e\n    \u003cdependencies\u003e\n      \u003cdependency\u003e\n        \u003cgroupId\u003eio.toolisticon.kotlin.generation\u003c/groupId\u003e\n        \u003cartifactId\u003ekotlin-code-generation-bom\u003c/artifactId\u003e\n        \u003cversion\u003eLATEST_VERSION\u003c/version\u003e\n        \u003cscope\u003eimport\u003c/scope\u003e\n        \u003ctype\u003epom\u003c/type\u003e\n      \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n  \u003c/dependencyManagement\u003e\n```\n\n## Documentation\n\nThis code generation lib wraps the fantastic [kotlin-poet](https://square.github.io/kotlinpoet/) framework. The documentation is based on the [kotlin-poet documentation](https://square.github.io/kotlinpoet/).\n\n## Getting started\n\nCore concept are [Strategies](./kotlin-code-generation/src/main/kotlin/spi/KotlinCodeGenerationStrategy.kt) and [Processors](./kotlin-code-generation/src/main/kotlin/spi/KotlinCodeGenerationProcessor.kt).\n\n### Load SPI\n\n* Implement and list your strategies and processors in the `META-INF/services/io.toolisticon.kotlin.generation.spi.KotlinCodeGenerationSpi`. Both interfaces are loaded via the same ServiceLoader mechanism,\nand later filtered for the specific type of strategy or processor.\n* Load the services via `val spi = KotlinCodeGeneration.spi.load()`\n* Define your context by extending the `KotlinCodeGenerationContext` class. This context is passed to the strategies and processors, so they can use more data than just the input item in the loop.\n  * You probably want to filter the loaded list you provide to your specific context.\n  * \n\n\n\n## Features\n\n* KotlinAnnotationSpec\n  * KotlinAnnotationSpecBuilder\n* KotlinFileSpec\n  * KotlinFileSpecBuilder\n* KotlinFunSpec\n  * KotlinFunSpecBuilder\n* KotlinParameterSpec\n  * KotlinParameterSpecBuilder\n* KotlinPropertySpec\n  * KotlinPropertySpecBuilder\n\n\n\n## Roadmap\n\n### Specs to support\n\n* com/squareup/kotlinpoet/TypeAliasSpec\n* com/squareup/kotlinpoet/TypeSpec\n\n### Builders to implement\n\n* com/squareup/kotlinpoet/AnnotationSpec$Builder\n  * Taggable.Builder\u003cBuilder\u003e\n* com/squareup/kotlinpoet/CodeBlock$Builder\n  * None\n* com/squareup/kotlinpoet/FileSpec$Builder\n  * Annotatable.Builder\u003cBuilder\u003e\n  * Taggable.Builder\u003cBuilder\u003e\n  * TypeSpecHolder.Builder\u003cBuilder\u003e\n* com/squareup/kotlinpoet/FunSpec$Builder\n  * Annotatable.Builder\u003cBuilder\u003e\n  * ContextReceivable.Builder\u003cBuilder\u003e\n  * Documentable.Builder\u003cBuilder\u003e\n  * Taggable.Builder\u003cBuilder\u003e\n  * OriginatingElementsHolder.Builder\u003cBuilder\u003e\n* com/squareup/kotlinpoet/ParameterSpec$Builder\n  * Annotatable.Builder\u003cBuilder\u003e\n  * Documentable.Builder\u003cBuilder\u003e\n  * Taggable.Builder\u003cBuilder\u003e\n* com/squareup/kotlinpoet/PropertySpec$Builder\n  * Annotatable.Builder\u003cBuilder\u003e\n  * ContextReceivable.Builder\u003cBuilder\u003e\n  * Documentable.Builder\u003cBuilder\u003e\n  * OriginatingElementsHolder.Builder\u003cBuilder\u003e\n  * Taggable.Builder\u003cBuilder\u003e\n* com/squareup/kotlinpoet/TypeAliasSpec$Builder\n  * Annotatable.Builder\u003cBuilder\u003e\n  * Documentable.Builder\u003cBuilder\u003e\n  * Taggable.Builder\u003cBuilder\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolisticon%2Fkotlin-code-generation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoolisticon%2Fkotlin-code-generation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolisticon%2Fkotlin-code-generation/lists"}