All Projects → clj-easy → graal-config

clj-easy / graal-config

Licence: EPL-1.0 license
GraalVM native-image configurations distribution for Clojure libraries

Programming Languages

clojure
4091 projects

Projects that are alternatives of or similar to graal-config

tools-deps-native
Run tools-deps-alpha as a native binary.
Stars: ✭ 30 (+42.86%)
Mutual labels:  graalvm-native-image
serverless-graalvm-demo
Sample serverless application written in Java compiled with GraalVM native-image
Stars: ✭ 132 (+528.57%)
Mutual labels:  graalvm-native-image
kafka-consumer-lag-monitoring
Client tool that exports the consumer lag of Kafka consumer groups to Prometheus or your terminal
Stars: ✭ 45 (+114.29%)
Mutual labels:  graalvm-native-image
piu.clj
Simple pastebin
Stars: ✭ 14 (-33.33%)
Mutual labels:  graalvm-native-image
GraalVMREPL
REPL (read–eval–print loop) shell built on top of JavaFX and GraalVM stack, incorporating GraalJS, GraalPython, TruffleRuby and FastR
Stars: ✭ 31 (+47.62%)
Mutual labels:  graalvm-native-image
lucene-grep
Grep-like utility based on Lucene Monitor compiled with GraalVM native-image
Stars: ✭ 160 (+661.9%)
Mutual labels:  graalvm-native-image
jayfu
Jayfu is a tutorial on how to create a Clojure CLI with GraalVM native-image and SCI.
Stars: ✭ 50 (+138.1%)
Mutual labels:  graalvm-native-image
LogoRRR
A log viewer which visualises log events such that it is easy to identify problems or events of interest. This app was implemented using Scala and JavaFX, GluonHQ toolchain and GraalVM as platform.
Stars: ✭ 40 (+90.48%)
Mutual labels:  graalvm-native-image

Graal config

A repository containing GraalVM native-image configurations to be used as git libraries in deps.edn.

How to use

  • Include this library as a git dependency in your native image classpath.
  • Set :deps/root to "config/<org>/<lib>"
  • In addition to this, include com.github.clj-easy/graal-build-time which automatically configures --initialize-at-build-time with clojure packages.
  • Then build your native image!

Full example for both cheshire/cheshire and com.taoensso/nippy in one build: (update versions as necessary):

{:deps
 {cheshire/cheshire                         {:mvn/version "5.10.0"}
  com.taoensso/nippy                        {:mvn/version "3.1.1"}
  com.github.clj-easy/graal-config-cheshire {:git/url   "https://github.com/clj-easy/graal-config"
                                             :git/sha   "b06e33694d2c878169958f7317ea01d9c0353ab4"
                                             :deps/root "config/cheshire/cheshire"}
  com.github.clj-easy/graal-config-nippy    {:git/url   "https://github.com/clj-easy/graal-config"
                                             :git/sha   "b06e33694d2c878169958f7317ea01d9c0353ab4"
                                             :deps/root "config/com.taoensso/nippy"}}}

Supported libraries

Library name Config path Additional steps
com.taoensso/nippy link None
cheshire/cheshire link None
com.h2database/h2 link "--allow-incomplete-classpath" (1*)
com.github.seancorfield/next.jdbc link MERGED UPSTREAM
org.slf4j/slf4j-simple link None
clj-http link None
ring/ring-jetty-adapter link None
  1. Vote here, so that we can allow-incomplete-classpath for only the specific cases.

Neil

To add a library to your deps.edn with neil:

neil add dep com.github.clj-easy/graal-config \
  :deps/root config/com.taoensso/nippy \
  :as com.github.clj-easy/graal-config-nippy :latest-sha true

Tested GraalVM versions

  • GraalVM 21.1.0
  • GraalVM 21.2.0
  • GraalVM DEV build

Contributing

  1. Clone the repository.
  2. Run bb recipe :org <org> :lib <lib>
  3. Provide config in META-INF/native-image/organization/library/native-image.properties + additional JSON files if necessary.

Tests

Run bb native-image-test :dir config/<org>/<lib>/example :graalvm-version <graalvm-version>. E.g:

$ bb native-image-test :dir config/com.taoensso/nippy/example :graalvm-version 21.1.2`.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].