This project contains a set of "hello world" projects to verify which Clojure libraries do actually compile and produce native images under GraalVM.
Here the instructions on how to build your own Clojure projects with GraalVM.
Here the list of libraries tested:
- Clojure core ✅
- clojure/tools.logging - Logging library ✅
- clojure/tools.logging+log4j - Logging library ✅
- amazonica+s3 - Cloud API wrapper library ❌ (Buildtime and Runtime error)
- cheshire - JSON parser/writer ✅
- clj-sophia - A fast RAM-Disk hybrid storage ❌ (Runtime error/JNA)
- nippy - Clojure serialization/deserialization library
⚠️ (Can't serialize exceptions) - cognitect/aws-api+s3 - Cloud API library ❓
- ring/jetty - Web server ❓
- ring/http-kit - Web server ❓
- ring/aleph - Web server ❓
- safely - Circuit breaker ✅
More libraries to come (PRs are welcome).
Interesting GraalVM documentation to build native-images:
- Understand Class Initialization in Native Image
- Assisted Configuration of Native Image Builds
- URL Protocols on Substrate VM for
http
andhttps
- JCA Security Services on Substrate VM
Copyright © 2019 Bruno Bonacci
Distributed under the Apache License v 2.0 (http://www.apache.org/licenses/LICENSE-2.0)