Compatibility
compose2pdf is tested weekly against the 3 most recent Compose Multiplatform releases on macOS and Linux.
Compose Multiplatform versions
| Compose Multiplatform | Kotlin | Status |
|---|---|---|
| 1.11.0-alpha04 | 2.3.20 | CI tested |
| 1.10.3 | 2.3.20 | CI tested (current) |
| 1.9.3 | 2.3.20 | CI tested |
This table is auto-updated weekly by CI. The compatibility workflow discovers the 3 most recent CMP releases and runs the full test suite against each.
JDK versions
| JDK | Status |
|---|---|
| 17 (Temurin) | CI tested |
| 21+ | Supported |
JDK 17 is the minimum — enforced by jvmToolchain(17) in the build. Later JDK versions are expected to work.
Platform support
| Platform | Status | Notes |
|---|---|---|
| macOS (arm64, x64) | CI tested | Full support |
| Linux (x64) | CI tested | Requires xvfb-run for headless Compose rendering |
| Windows (x64) | Supported | Not CI tested, but Compose Desktop and PDFBox both support Windows |
compose2pdf targets Compose Desktop (JVM). Android, iOS, and Compose for Web are not supported.
Dependencies
| Dependency | Version | Purpose |
|---|---|---|
| Kotlin | 2.3.20 | Language |
| Compose Multiplatform | 1.9+ | UI framework |
| Apache PDFBox | 3.0.7 | PDF generation |
| Kotlinx Coroutines | 1.10.2 | Compose runtime dependency |
How compatibility is tested
The compatibility workflow runs on every push to main, every PR, and weekly on Monday at 9am UTC.
It dynamically loads Compose Multiplatform versions from .github/compose-versions.json, overrides the library’s pinned version, and runs the full build for each combination.
The update-compose-versions workflow automatically discovers new CMP releases weekly and updates the test matrix.
See also
- Getting Started – Prerequisites and installation
- Troubleshooting – Common issues and fixes