GraalVM native image

Helidon applications can be compiled into a native executable using GraalVM native image.

When using applications created using the CLI, or when you configure Helidon application pom as a parent of your module, you can use the following steps to build a native image from your application:

  1. Create an environment variable GRAALVM_HOME pointing to your installation of GraalVM with native-image installed
  2. Run Maven command mvn clean package -Pnative-image
  3. Execute the native executable created in target directory of your project

AOT supported modules

Some Helidon components are not (yet) supported in native image, some have restrictions. The following table lists all Helidon features and their support for native image.

Helidon MP features in AOT
 FeatureComponentAOT note
✅CDICDI 
✅ConfigConfig 
✅ Encryption 
✅ YAML 
✅Fault ToleranceFault Tolerance 
✅HealthHealth 
✅ Built-ins 
✅JAX-RSJAX-RS 
✅JPAJPA 
❓ EclipseLinkNot yet tested.
🔶 HibernateExperimental support, tested on limited use cases with Helidon Oracle and H2 JDBC modules
🔶JTAJTAExperimental support, tested on limited use cases
✅MessagingMessaging 
✅MetricsMetrics 
✅Open APIOpen API 
🔶REST ClientREST ClientDoes not support execution of default methods on interfaces.
✅SecuritySecurity 
✅ Integration: Jersey 
✅ Integration: WebServer 
✅ Integration: gRPC 
✅ JWT Auth 
✅ OIDC 
✅ Provider: ABAC 
✅ Provider/ABAC/Policy: ELRequires reflection configuration for used classes.
✅ Provider/ABAC: Role 
✅ Provider/ABAC: Scope 
✅ Provider/ABAC: Time 
❓ Provider: Google LoginNot yet tested.
✅ Provider: Header 
✅ Provider: HTTP Basic 
✅ Provider: HTTP Digest 
✅ Provider: HTTP Signatures 
❓ Provider: IDCS Role MapperNot yet tested.
✅ Provider: JWT 
✅ServerServer 
✅ Access Log 
✅ CORS 
✅TracingTracing 
✅ Integration: Jersey Server 
✅ Integration: Jersey Client 
✅ Jaeger 
✅ Zipkin 
✅Web ClientWeb Client 
✅ Metrics 
✅ Security 
✅ Tracing 
✅ WebsocketServer only.
✅gRPC ServergRPC ServerSince GraalVM 21.0.0
✅ Metrics 
✅gRPC ClientgRPC ClientSince GraalVM 21.0.0
✅ Metrics 
✅SchedulingScheduling 
✅OCIOCI IntegrationModules with group id io.helidon.integrations.oci
✅VaultHashicorp Vault Integration 
✅Long Running ActionsClient 
✅ CoordinatorOnly with external database