graalvm-clojure
sqlite-graalvm-sample
graalvm-clojure | sqlite-graalvm-sample | |
---|---|---|
7 | 1 | |
487 | 4 | |
0.4% | - | |
5.4 | 10.0 | |
5 months ago | almost 3 years ago | |
Clojure | Clojure | |
Apache License 2.0 | 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.
graalvm-clojure
-
Faster load times for production deployments
Using graalvm when possible. More details (finding out if possible for your project) here: https://github.com/clj-easy/graalvm-clojure/tree/master/
- Loopr: A Loop/Reduction Macro for Clojure
- Joker
- What do you think about Racket, particularly as it compares with Clojure?
-
Building A Fast Command Line App With Clojure CLI (tools.deps) and GraalVM
I haven't yet, no, but I've just barely gotten started. There's a repo here that tracks compatibility of several Clojure libraries: https://github.com/BrunoBonacci/graalvm-clojure
-
Building A Fast Command Line App With Clojure
Even though there's no batteries-included way to manage Clojure projects, the community has put together a lot of great tools and guides the cover all the bases. The community seems to be converging around the official Clojure CLI and associated tooling as the preferred way to manage Clojure projects. It's extremely well designed, like most things Clojure, but, also like most things Clojure, it's very bare-bones. It's not an all-in-one command-line utility you can use to manage your whole project, like the angular or rails CLIs (which I didn't appreciate nearly enough in my former life 😢). You need to configure the Clojure CLI itself for it to be useful, but luckily that's really straightforward to do. What follows are the steps I did to make a new skeleton command-line app in Clojure. It follows the steps from this great guide, but I included the actual commands here because I use the Clojure CLI (clj) instead of lein to run things.
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...
What are some alternatives?
joker - Small Clojure interpreter, linter and formatter.
babashka - Native, fast starting Clojure interpreter for scripting
immer - Postmodern immutable and persistent data structures for C++ — value semantics at scale
Carp - A statically typed lisp, without a GC, for real-time applications.
clasp - clasp Common Lisp environment
janet - A dynamic language and bytecode vm
clj-new - Generate new projects based on clj, Boot, or Leiningen Templates!
jank - A Clojure dialect hosted on LLVM with native C++ interop
zinc