Extensions

Here’s a list of notable nREPL extensions (middleware or transports) you might encounter in the wild.

Make sure you’re using the latest versions of those middlewares, as all of them added support for nREPL 0.4+ fairly recently.

Official

Official extensions are developed and maintained by nREPL’s Core Team and are hosted under the nREPL GitHub organization.

Middleware

ClojureScript Support

The following ClojureScript REPLs are leveraging piggieback internally to provide nREPL support.

Transports

HTTP Support

Transit Support

Third-party

Third-party extensions are not developed and maintained by nREPL’s Core Team and are hosted outside the nREPL GitHub organization.

Middleware

Clojure Editor Support

  • cider-nrepl: A collection of nREPL middleware designed to enhance CIDER (and Clojure editors in general).

  • refactor-nrepl: A collection of functionality designed to support editor refactoring features.

  • iced-nrepl: nREPL middleware to support vim-iced.

Debugging

  • sayid: A powerful tracing/debugging tool. It is a great alternative of CIDER-nREPL’s basic tracing functionality.

  • scope-capture-nrepl: A companion library to scope-capture, providing an nREPL middleware that lets you put your REPL in the context of an Execution Point.

Deprecated

This section lists middlewares that were somewhat prominent in the past, but were replaced by alternatives down the road.

  • nrepl-middleware, part of ritz that provides a variety of nREPL middleware supporting various enhanced REPL operations (including apropos, javadoc lookup, code completion, and an alternative eval implementation). (superseded by cider-nrepl)

  • Javert provides a basic object inspector. (superseded by cider-nrepl)

  • nrepl-profile: profiling middleware, which was eventually integrated into cider-nrepl.

This list doesn’t aim to be complete. You can find more 3rd-party middlewares listed here.