Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
graalvm-kotlin-native-image-sample
Example project showing how to build a native, static executable from a Kotlin project using GraalVM
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
holy-lambda
The extraordinary simple, performant, and extensible custom AWS Lambda runtime for Clojure.
UPX doesn't play nice with antivirus software if it's important for you to run on Windows (at least).
Examples of Clojure projects that compile to native:
- babashka (https://github.com/babashka/babashka)
- clj-kondo (https://github.com/clj-kondo/clj-kondo)
- jet (https://github.com/borkdude/jet)
SCI is a Clojure interpreter that allows you to evaluate Clojure code even inside of the final native binary and is used in all of the above projects.
Feel free to bug me with questions in the graalvm channel on Clojurians Slack.
Examples of Clojure projects that compile to native:
- babashka (https://github.com/babashka/babashka)
- clj-kondo (https://github.com/clj-kondo/clj-kondo)
- jet (https://github.com/borkdude/jet)
SCI is a Clojure interpreter that allows you to evaluate Clojure code even inside of the final native binary and is used in all of the above projects.
Feel free to bug me with questions in the graalvm channel on Clojurians Slack.
Examples of Clojure projects that compile to native:
- babashka (https://github.com/babashka/babashka)
- clj-kondo (https://github.com/clj-kondo/clj-kondo)
- jet (https://github.com/borkdude/jet)
SCI is a Clojure interpreter that allows you to evaluate Clojure code even inside of the final native binary and is used in all of the above projects.
Feel free to bug me with questions in the graalvm channel on Clojurians Slack.
Do you have any feedback on how we could improve the docs? If so, please let us know!
I believe the easiest way to start a new Truffle language implementation is to fork SimpleLanguage [1] and turn it into your language. Did you try to do that?
I opened a ticket some time ago about performance with Jekyll and liquid templates. At least in that case, yjit was way faster. I'm happy to retest though. Anything that would make my jekyll builds faster would help.
I don't have anything public right now but the setup is pretty simple (although I use Gradle with the Kotlin DSL instead of Maven). It's your standard kotlin or java setup that can build a jar with dependencies included, and 1 extra build step to invoke `native-image` from the Graal SDK.
If you love GraalVM, and very small app sizes, and get a nice dependency injection framework to break your code up into testable modules, be sure to check out https://quarkus.io . Be sure to scroll down to the memory and start time benchmarks :)
Here, have some PCP![1] The first one's free!
> An easy to use, drop-in Clojure replacement for php scripts
> Allow multiple websites to be hosted on a single $5 VPS
> The utility is a simple binary, built with GraalVM, that allows you to work effectively with pcp.
Note that not all of PCP is AOT compiled. Just the command line utility. There's a daemon as well.
I'm running Clojure code compiled with GraalVM native for AWS Lambda. Cold start times are low and performance is decent enough, even with CE edition. The whole process is reasonably painless through the use of Holy Lambda https://github.com/FieryCod/holy-lambda
Not quite what you were asking for, but I wanted to chip in as another happy Clojure + GraalVM native user.