clojerl
coffi
clojerl | coffi | |
---|---|---|
12 | 6 | |
1,634 | 250 | |
0.3% | - | |
5.1 | 3.7 | |
6 months ago | 3 months ago | |
Erlang | Clojure | |
Eclipse Public License 1.0 | Eclipse Public License 1.0 |
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.
clojerl
- Really hard convincing colleague to switch to Clojure
-
Clojure Scripting on Node.js
Basically, you take a programming language and make it work on a platform that meant to be programmed using a different PL. Clojure is hosted by design - it's not Java, but can be used to program for JVM. It ain't Javascript, but can be used to target nodejs and browser; not an [official] CLR language, but you can write .Net programs. You can use Clojure to make Flutter apps with ClojureDart. You can integrate Python into Clojure with libpython-clj. Or write Clojure to target Erlang/OTP; or Rust; or R; There's even a clojure-like language for Lua - Fennel.
There's something about Clojure people like so much, they want it to work atop any platform.
https://github.com/Tensegritics/ClojureDart
https://github.com/clj-python/libpython-clj
https://github.com/clojerl/clojerl
https://github.com/clojure-rs/ClojureRS
https://github.com/scicloj/clojisr
https://fennel-lang.org
- On Repl-Driven Programming
-
Which Programming language libraries can Clojure use as its own?
But there are also unofficial implementations—i.e. not JVM, JS, .NET—of Clojure for other host environments, e.g. Clojerl. And of course nearly everything /u/borkdude touches interops with something in some way.
-
CL vs Racket
Tail call optimization/elimination isn't a property of functional languages - there are tons of non-functional languages with it, like Lua or even C, when compiled with -O3, to name a few. Besides, Clojure is a hosted language, so it shares the platform characteristics, and recur is a language-way of providing a construct for tail call looping. Clojure on BEAM for example, supports tail call elimination, because BEAM does. And Beam is a quite functional environment ;)
-
Clojure, but without the JVM?
Clojerl: an implementation for the Erlang VM. The reader conditional is :clje.
- Clojerl 0.9.0 is out with features released in Clojure 1.9, including Spec
- Elixir Protocols vs. Clojure Multimethods
-
haskell elixr or clojure
There's also an unofficial BEAM VM implementation
- London Clojurians talk: Clojure - JVM + BEAM = Clojerl (by Juan Facorro)
coffi
-
JEP Draft: Prepare to Restrict the Use of JNI
Honestly, Project Panama seems much more promising for interop with the C ABI from the Java platform. This is anecdotal, but a lot of commercial Clojure projects seem to have a small JNI-using library that nobody dares to touch with a 10 ft. pole lest something in it breaks and debugging is tedious, if possible at all. I've been eagerly waiting for the release of Java 21 since it means projects like coffi[1] can be used in a stable release of Java, and the API is honestly much more ergonomic than dealing with SWIG and using JNI directly.
[1] https://github.com/IGJoshua/coffi
- Scala native equivalent to Clojure
-
Which Programming language libraries can Clojure use as its own?
Yes hello I am new kid. There's Project Panama which is wrapped by https://github.com/IGJoshua/coffi
-
Reflecting on 18 months of Clojure - Building a SaaS business with Clojure
coffi
- Coffi, a Foreign Function Interface for Clojure on JDK 17
- Coffi, a Foreign Function Interface for JDK 17
What are some alternatives?
cloture - Clojure in Common Lisp
xtdb - An immutable database for application development and time-travel data compliance, with SQL and XTQL. Developed by @juxt
meander - Tools for transparent data transformation
libapl-clj - GNU APL native interop for Clojure
nx - Multi-dimensional arrays (tensors) and numerical definitions for Elixir
sente - Realtime web comms library for Clojure/Script
joker - Small Clojure interpreter, linter and formatter.
libjulia-clj - Julia bindings for Clojure -- Currently somewhat unstable --
protocol_ex - Elixir Extended Protocol
jnr-posix - Java Posix layer
lazy-seq - Lazy sequences for Fennel and Lua (mirror)
clong - A wrapper for libclang and a generator that can turn c header files into clojure apis.