sqlite-graalvm-sample
zinc
sqlite-graalvm-sample | zinc | |
---|---|---|
1 | 1 | |
4 | - | |
- | - | |
10.0 | - | |
almost 3 years ago | - | |
Clojure | ||
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sqlite-graalvm-sample
-
Loopr: A Loop/Reduction Macro for Clojure
Ya, I'm not going to disagree, it's not the nicest build pipeline.
That said, you can figure it out normally.
Using native dependencies will always be the hardest. I'd recommend first trying to use graalvm friendly libraries, and if not, libraries that are pure Java and don't have native dependencies.
For SQLite for example, you have to include the SQLite C driver, and that's where it gets a bit complicated.
See here for a demo build that includes SQLite: https://github.com/ericdallo/sqlite-graalvm-sample/tree/mast...
zinc
-
Loopr: A Loop/Reduction Macro for Clojure
I invite you to try it. Put together a modest CLI that does SQLite, some network calls, and unzips files. ( https://github.com/djhaskin987/zinc ). Using native-image with any reasonable set of dependencies like this is *horrendous*. Just because you can doesn't mean it's tractable. I spent 10% of my time writing the tool and 90% of it trying to get it to compile. Absolutely the worst experience trying to get something to build in my life, and I'm a devops engineer. Building and shipping code is my thing.
What are some alternatives?
babashka - Native, fast starting Clojure interpreter for scripting
Carp - A statically typed lisp, without a GC, for real-time applications.
janet - A dynamic language and bytecode vm
graalvm-clojure - This project contains a set of "hello world" projects to verify which Clojure libraries do actually compile and produce native images under GraalVM.
jank - A Clojure dialect hosted on LLVM with native C++ interop