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 SE features in AOT
FeatureComponentAOT note
ConfigConfig 
 Encryption 
 HOCON 
 Object Mapping 
 YAML 
 etcdNot yet tested.
 git 
Db ClientDb Client 
 Health Check 
🔶 JDBCTested with Helidon modules for Oracle and H2 driver (see examples)
 Metrics 
 Tracing 
 mongo 
HealthHealth 
 Built-ins 
MessagingMessaging 
MetricsMetrics 
OpenAPIOpenAPI 
SecuritySecurity 
 Integration: Jersey 
 Integration: WebServer 
 Integration: gRPC 
 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 
TracingTracing 
 Integration: Jersey Server 
 Integration: Jersey Client 
 Jaeger 
 Zipkin 
WebClientWebClient 
 Web Client 
 Jackson 
 JSON-B 
 JSON-P 
 Metrics 
 Multi-part 
 Security 
 Tracing 
WebServerWebServer 
 Access Log 
 CORS 
 Jackson 
 Jersey 
 JSON-B 
 JSON-P 
 Multi-part 
 PrometheusNot yet tested.
 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