Skip to content

Supported platforms

The :kiteqr engine is pure common Kotlin. It uses kotlin-stdlib only, with no expect/actual, no java.* and no native binaries. The same code compiles and runs on every target below.

:kiteqr-compose builds for fewer of them. It supports only the targets that Compose Multiplatform supports, and its Android minSdk is 24 rather than 21. Mismatched target sets are the most common cause of a failed first build, so check both columns.

Target :kiteqr :kiteqr-compose
androidTarget minSdk 21 minSdk 24
jvm yes yes
iosArm64, iosSimulatorArm64 yes yes
iosX64 yes no
macosArm64 yes yes
tvosArm64, tvosSimulatorArm64 yes no
watchosArm32, watchosArm64, watchosSimulatorArm64, watchosDeviceArm64 yes no
linuxX64, linuxArm64, mingwX64 yes no
androidNativeArm32, androidNativeArm64, androidNativeX86, androidNativeX64 yes no
js(IR) browser + Node browser
wasmJs browser + Node browser
wasmWasi Node no

That is 22 targets for :kiteqr and 7 for :kiteqr-compose. The Apple targets are Arm-only apart from iosX64. Neither module builds macosX64, tvosX64 or watchosX64.

What needs a platform

Only drawing onto a screen. That lives in the opt-in :kiteqr-compose binding. The core never depends on it.

What has actually been run

Targets being declared is not the same as targets being tested. The test suite has only been executed on the JVM. The Kotlin/Native, JS, Wasm and Android target tests have never been run in this tree, and no CI workflow runs them either. Cross-target compilation is checked with compileCommonMainKotlinMetadata. Per-target binaries may need the relevant Kotlin/Native toolchains on first build.