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