Skip to content
Image docs0.3

Java 25 FFM Backend

Latest stable Based on Image release 0.3.0

bluetape4k-images-vips-java25 implements the common Vips API with the vips-ffm binding and Java’s Foreign Function and Memory API.

The module requires a Java 25 toolchain, system libvips, and:

--enable-native-access=ALL-UNNAMED

On macOS with Homebrew, the Gradle test config exposes /opt/homebrew/lib through DYLD_LIBRARY_PATH when present. Production launch configuration must provide an equivalent library path rather than depending on the Gradle test environment.

Use FfmVipsRuntime and FfmVipsImage behind the common API. Close source and derived images with use. Supported operations include loading, resize, thumbnail, crop, coroutine helpers, Okio sources, and JPEG/PNG/WebP/HEIF-family writing as supported by the native installation.

The module disables AtomicFU JVM transformation because the FFM dependency uses Java 25 class files that a Java 21 build JVM cannot transform safely. Preserve this build constraint.

Use this backend only when JDK 25 and the native-access flag are accepted deployment requirements. Do not choose it solely from repository benchmark numbers; validate startup, codecs, memory, and throughput in the target container or host.