Kora фреймворк для написания Java / Kotlin приложений с упором на производительность, эффективность, прозрачность сделанный разработчиками Т-Банк / Тинькофф

Kora is a framework for writing Java / Kotlin applications with a focus on performance, efficiency, transparency made by T-Bank / Tinkoff developers

GraalVM Native

Kora создает свои вспомогательные классы во время компиляции, так что проблем для сборки нативного образа быть не должно.

Пример сборки нативного образа с помощью плагина для gradle:

Плагин build.gradle:

plugins {
    id "org.graalvm.buildtools.native" version "0.10.1"
}

Настройка плагина build.gradle:

graalvmNative {
    binaries {
        main {
            imageName = "application"
            mainClass = "ru.tinkoff.kora.example.Application"
            debug = true
            verbose = true
            buildArgs.add("--report-unsupported-elements-at-runtime")
            javaLauncher = javaToolchains.launcherFor {
                languageVersion = JavaLanguageVersion.of(17)
                vendor = JvmVendorSpec.matching("GraalVM Community")
            }
        }
    }
    metadataRepository {
        enabled = true
    }
}

Плагин build.gradle.kts:

plugins {
    id("org.graalvm.buildtools.native") version("0.10.1")
}

Настройка плагина build.gradle.kts:

graalvmNative {
    binaries {
        named("main") {
            imageName.set("application")
            mainClass.set("ru.tinkoff.kora.example.Application")
            debug.set(true)
            verbose.set(true)
            buildArgs.add("--report-unsupported-elements-at-runtime")
            javaLauncher = javaToolchains.launcherFor {
                languageVersion = JavaLanguageVersion.of(17)
                vendor = JvmVendorSpec.matching("GraalVM Community")
            }
        }
    }
    metadataRepository {
        enabled.set(true)
    }
}

Некоторые библиотеки требуют дополнительной конфигурации, часть конфигураций сделана в фреймворке.

Проверенные модули, которые должны работать без дополнительной конфигурации: