As mentioned earlier the nREPL protocol is language-agnostic and can be leveraged for many languages that have the ability to evaluate code at runtime.
Those server implementations are developed and maintained by third-parties (as opposed to nREPL’s team), and their maturity might vary.
Certain nREPL clients may make Clojure-specific assumptions which will cause bugs when used with other servers, while other clients are designed with language-agnosticism in mind. Usually the nREPL servers would mention in their documentation which clients are known to work well with them. |
HyREPL - an nREPL for the Hy programming language
cl-nrepl - an nREPL server for Common Lisp
cljs-noderepl - an nREPL server for ClojureScript running on Node.js
R-nREPL - an nREPL server for R
nrepl-python - an nREPL server for Python
nREPL CLR - an nREPL server for ClojureCLR. A 1:1 port of the reference Clojure nREPL. Unfortunately it has been abandoned a long time ago.
Arcadia nREPL - an nREPL server implemented in C# for Arcadia. An actively maintained alternative of nREPL CLR.
Babashka nREPL - an nREPL server bundled with babashka
nrepl-cljs - a native ClojureScript nREPL server implementation
nrepl-cljs-sci - a native Node.js nREPL server implementation using SCI.
guile-ares-rs - an Asynchronous Reliable Extensible Sleek RPC Server for Guile based on the nREPL protocol.
As you can see nREPL has implementations for many popular Lisp dialects, but it’s certainly not limited to Lisp dialects.
Can you improve this documentation? These fine people already did:
Bozhidar Batsov, Nicolas Graves, Kristian Lein-Mathisen, Oleksandr Yakushev, Sasanidas & Phil HagelbergEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close