Rail is a client nREPL implementation base on monroe, with similar features but aims to be a more complete implementation.
If you want the simpler version, monroe is the way to go.
Rail’s main goal is to implement a client that is not bound in any way to Clojure, following the supported operations, which are language agnostic.
This doesn’t mean that it cannot be used for Clojure projects, this project understands that the “default” language is and probably will be Clojure, so if no language is specified, some specific to Clojure assumptions will be made (but I’ll try to keep these to a minimum).
Rail doesn’t have any external dependencies, so if you are using Emacs 26.2+ you should be good to go, just add the files of the project to the load-path and require the package:
(require 'rail)
To start a nREPL session, make sure to have a server properly initialize and then use M-x rail
and
write the ip and port (eg: “localhost:8983”)
A REPL will then be pop on the side and you can start typing.
- clone
- describe
- interrupt
- ls-sessions
- eval
- load-file
- completions
- lookup
One of the major features TODO is the support for middlewares, for more information on the operations here.
For now, this project has no official documentation, you can check the test folder on how the tests are being launched using the server nrepl-python and lein headless repl.
Feel free to report any issues you find or if you have suggestions for improvements.