Giter Club home page Giter Club logo

akka-graal-config's Introduction

GraalVM native-image configuration for Akka

GraalVM allows JVM libraries to include configuration for native-image in their JAR artifacts. See this blog post for more details.

Akka does not do that (yet) so this repo publishes artifacts that can be used for building Akka projects with native-image without supplying the whole configuration in the project itself.

graal-akka-actor

This artifact provides reflection configuration for akka-actor (based on previous work by jrudolph) module and also substitutions to make Akka's default scheduler and Scala 2.13's Statics.releaseFence work with native-image.

"com.github.vmencik" %% "graal-akka-actor" % graalAkkaVersion

graal-akka-stream

This artifact provides reflection configuration for akka-stream module.

"com.github.vmencik" %% "graal-akka-stream" % graalAkkaVersion

graal-akka-http

This artifact provides reflection configuration for akka-http and also enables support for http and https protocols.

"com.github.vmencik" %% "graal-akka-http" % graalAkkaVersion

graal-akka-slf4j

This artifact provides reflection configuration for akka-slf4j module.

"com.github.vmencik" %% "graal-akka-slf4j" % graalAkkaVersion

graal-akka-remote

To use Akka Remote with Graal:

  • configure the Artery TCP implementation
  • exclude Netty and Aeron from your dependency tree
  • pass the --allow-incomplete-classpath parameter to native-image

Usage

Note that the configuration provided by these artifacts is not everything you will need to build your Akka project with native-image.

See the akka-graal-native repository for an example of Akka HTTP service compiled into native binary. There you can see the rest of the configuration for native-image and also configuration for Akka itself that makes things easier.

Compatibility

Current version of the artifacts was tested with:

  • akka-actor 2.5.25
  • akka-http 10.1.8
  • GraalVM 19.1.1
  • Scala 2.12.8 and 2.13.0

The reflection configuration and the substitutions are tightly coupled with Akka internals and will likely need to be updated for future versions.

The artifacts are cross-published for Scala 2.13 and Scala 2.12.

akka-graal-config's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.