Compatibility

Compose 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