README.org

September 11, 2025 ยท View on GitHub

#+html:

Rail is a client [[https://github.com/nrepl/nrepl][nREPL]] implementation base on [[https://github.com/sanel/monroe][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 [[https://nrepl.org/nrepl/1.0/ops.html][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).

** Installation

*** Manual 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 [[https://www.emacswiki.org/emacs/LoadPath][load-path]] and require the package: #+BEGIN_SRC emacs-lisp (require 'rail) #+END_SRC

** Usage 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.

** Supported operations

  • 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 [[https://nrepl.org/nrepl/1.0/ops.html][here]].

** Documentation For now, this project has no official documentation, you can check the test folder on how the tests are being launched using the server [[https://codeberg.org/sasanidas/nrepl-python.git][nrepl-python]] and [[https://leiningen.org/][lein]] headless repl.

** Bug reports & patches

Feel free to report any issues you find or if you have suggestions for improvements.