Loopr: A Loop/Reduction Macro for Clojure

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • janet

    A dynamic language and bytecode vm

  • Carp

    A statically typed lisp, without a GC, for real-time applications.

  • 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.

    WorkOS logo
  • babashka

    Native, fast starting Clojure interpreter for scripting

  • Babashka is Clojure running natively. It uses a simplified version of the Clojure runtime compiled to native code. No JVMs involved at runtime.

    https://babashka.org/

  • jank

    A Clojure dialect hosted on LLVM with native C++ interop

  • This isn't usable yet, but in active development by the author, and looks promising: https://jank-lang.org/

  • 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.

  • zinc

  • 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.

  • sqlite-graalvm-sample

    A sample compiling an app that uses sqlite with GraalVM

  • 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...

  • 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.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts