Which Frameworks and Cloud Platforms Support GraalVM?
Updated
GraalVM lists first-class support from four Java frameworks — Spring Boot, Micronaut, Helidon, and Quarkus — and integration from SDKs of four cloud platforms: AWS, Microsoft Azure, GCP, and Oracle Cloud Infrastructure. If your stack is built on one of these, you can generally expect a supported path to Native Image; if you use a different framework or cloud provider, you'll need to verify compatibility yourself before committing.
Framework support
GraalVM's site states that "popular frameworks such as Spring Boot, Micronaut, Helidon, and Quarkus provide first-class support for GraalVM." In practice, "first-class support" means the framework project itself maintains the integration — build plugins, configuration for ahead-of-time compilation, and handling of reflection and resource metadata that Native Image needs.
| Framework | Support level stated by GraalVM | What it implies for you |
|---|---|---|
| Spring Boot | First-class | Framework-maintained Native Image build path |
| Micronaut | First-class | Framework-maintained Native Image build path |
| Helidon | First-class | Framework-maintained Native Image build path |
| Quarkus | First-class | Framework-maintained Native Image build path |
The practical benefit: you're not hand-writing the reflection configuration that Native Image requires. The framework's build tooling generates it. That matters because Native Image compiles ahead of time and includes only the classes, methods, and fields your application actually reaches — which is also why GraalVM describes native executables as having a reduced attack surface.
What "first-class" does not guarantee
First-class support is a statement about the framework, not about every library you add on top. A Spring Boot app using a mainstream starter is a different case from one using an obscure library that relies on dynamic class loading. Before you commit, check whether your specific dependencies ship GraalVM metadata. If they don't, expect to supply configuration or replace the library.
Cloud platform integration
GraalVM states that SDKs from AWS, Microsoft Azure, GCP, and Oracle Cloud Infrastructure "integrate and support GraalVM." This is about the vendor SDKs your application calls, not about whether you can deploy a native executable to a given cloud — a native binary is a standalone executable, so deployment is generally a packaging question rather than a platform-permission question.
| Cloud platform | Support stated by GraalVM |
|---|---|
| AWS | SDK integrates and supports GraalVM |
| Microsoft Azure | SDK integrates and supports GraalVM |
| GCP | SDK integrates and supports GraalVM |
| Oracle Cloud Infrastructure | SDK integrates and supports GraalVM |
If your application talks to one of these clouds through the official SDK, the integration is documented as supported. If you use a third-party client or a community SDK, that claim doesn't extend to it.
Why this matters for Native Image specifically
The reason framework and SDK support is the deciding factor — rather than a nice-to-have — is the nature of ahead-of-time compilation. GraalVM's own framing of Native Image centers on four properties:
- Low resource usage — native executables use only a fraction of the memory and CPU a JVM requires.
- Fast startup — executables start instantly with no warmup.
- Compact packaging — small binaries with linking options suited to minimal container images.
- Improved security — only reachable classes, methods, and fields are included.
Every one of those benefits depends on the compiler being able to see your code paths at build time. Frameworks and SDKs that pre-declare their dynamic behavior make that possible; ones that don't will either fail the build or fail at runtime. So the support list is effectively a list of stacks where the ahead-of-time model works without you doing the metadata work.
How to decide for your project
Use this as a checklist rather than a verdict:
- Framework — Is it Spring Boot, Micronaut, Helidon, or Quarkus? If yes, you have a supported starting point. If no, check that framework's own documentation for GraalVM guidance before proceeding.
- Cloud SDK — Do you call AWS, Azure, GCP, or OCI through the official SDK? If yes, that layer is covered. Third-party clients need separate verification.
- Dependencies — Do your non-framework libraries publish GraalVM metadata? This is the most common place a supported stack still hits friction.
- Version — GraalVM's site references GraalVM 25.4 as the current release, with new compiler optimizations, smaller Native Image binaries, and advanced Truffle and WebAssembly capabilities. Confirm your framework version supports the GraalVM release you plan to use.
If steps 1 and 2 both pass and step 3 is clean, the supported path is straightforward. If step 3 is unclear, treat it as the gating item — it determines whether you get the startup and memory benefits or spend the effort on configuration instead.