Skip to content

This project contains a set of "hello world" projects to verify which Clojure libraries do actually compile and produce native images under GraalVM.

License

Notifications You must be signed in to change notification settings

jeroenvandijk/graalvm-clojure

 
 

Repository files navigation

Clojure meets GraalVM

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:

Status Library Description Remarks
Clojure core works without Specs
clojure/tools.logging Logging library
clojure/tools.logging+log4j Logging library
aleph Web server
amazonica+s3 Cloud API wrapper library Buildtime and Runtime error
cheshire JSON parser/writer
clj-http-lite Web client
clj-sophia A fast RAM-Disk hybrid storage Runtime error/JNA
clj-uuid RFC4122 Unique Identifiers for Clojure No objects in namespaced uuids
clostache {{ mustache }} for Clojure
cognitect/aws-api+s3 Cloud API library
datascript Immutable database and Datalog query engine
⚠️ fastmath Fast and primitive math and stats library See README
hiccup Fast library for rendering HTML in Clojure
http-kit Web server Web client ❌
monger An idiomatic Clojure MongoDB driver with sane defaults
next.jdbc + honeysql Database driver and SQL-in-Clojure
⚠️ nippy Clojure serialization/deserialization library Can't serialize exceptions
ring/jetty Web server
safely Circuit breaker
secure-random SecureRandom initialization

More libraries to come (PRs are welcome).

Interesting GraalVM documentation to build native-images:

How to contribute

If you wish to add a library and contribute with a PR please follow these steps:

  1. Fork the project
  2. use the sample-project as a template. cp -r sample-project my-library
  3. add the library to the project.clj and the native-image parameters used
  4. amend the my-library/src/simple/main.clj to use the library
  5. amend the my-library/README.md with the info you discovered.
  6. Make a PR with your findings and "Thank you" in advance.

License

Copyright © 2019-2020 Bruno Bonacci

Distributed under the Apache License v 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

About

This project contains a set of "hello world" projects to verify which Clojure libraries do actually compile and produce native images under GraalVM.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Clojure 93.6%
  • Shell 6.4%