Nrepl Versions Save

A Clojure network REPL that provides a server and client, along with some common APIs of use to IDEs and other tools that may need to evaluate Clojure code in remote environments.

v1.1.1

2 months ago

Bugs fixed

  • #307: Fix issue where TLS accept loop could sometimes exit prematurely. This caused tests to hang sometimes.
  • #311: Make --interactive option work when starting a server on a filesystem socket with --socket PATH.

Changes

  • #304: Improve completions op by switching internally to compliment-lite. The change is mostly transparent, but should result in more accurate completion results.

1.1.0

6 months ago

New Features

  • #266: Add TLS support.

Bugs fixed

  • #291: Fix issue with completion middleware not returning values for local class files, or .jar files on Windows.

1.0.0

1 year ago

nREPL 1.0 is a small, yet symbolic release. It's the culmination of over 4 years of hard work and it signifies we're at a point where all the problems that I'd promised we'd fix in 2018 have been addressed and it's time for us to take nREPL to the next level! As always - I'm confident that the best is yet to come!

Thanks to everyone for their help and support! You rock!

P.S. nREPL 1.0 is dedicated once again to the brave people of Ukraine, who celebrate their Independence Day today. Слава Україні!

New Features

  • #217: Add nREPL client support for unix domain sockets.

Changes

  • #279: Allow reader conditionals for tty transport.
  • #281: Make unix domain socket integration compatible with junixsocket versions >= 2.5.0.

0.9.0

2 years ago

New features

  • #217: Add keyword completion support.
  • #226: Add doc and arglists to completion responses.
  • #238: Expand completion and lookup error message when ns not found.
  • #204: Add server support for UNIX domain (filesystem) sockets via -s/--socket PATH on the command line or (start-server ... :socket PATH) whenever the JDK is version 16 or newer or junixsocket is available as a dependency.
  • #243: Keep the sideloader state in the session so it persists across middleware changes. Sanitize the input in base64-decode.

Bugs fixed

  • #227: Fix completion for static class members.
  • #231: Fix sanitize error when file is java.net.URL.
  • #208: Fix namespace resolution in the cmdline REPL.
  • #248: Create fewer new classloaders.
  • #258: Make compatible with graalvm native image.

0.8.1

3 years ago

Bugs fixed

  • #206: Fix classloader-related breakage with cider-nrepl and Java 8.

0.8.2

3 years ago

Bugs fixed

  • #211: Fix a couple of lookup op errors.

0.8.3

3 years ago

Bugs fixed

  • #213: Fix sideloader race condition.

0.8.0

3 years ago

New features

  • Bundle a couple of print functions compatible with the print middleware (see nrepl.util.print).
  • #174: Provide a built-in completions op.
  • #143: Added a middleware that allows dynamic loading/unloading of middleware while the server is running.
  • #180: Provide a built-in lookup op.

Bugs fixed

  • #125: The built-in client supports greeting-fn.
  • #126: The built-in client exits with an error message when the tty transport is selected. It used to fail silently. This was never supported.
  • #113: Fix an issue with hotloading using Pomegranate in Leiningen.
  • #17: It was possible for the bencode transport to write partial messages if a middleware tries to write something unencodable. This could cause the client or server to hang.

0.7.0

4 years ago

New features

  • #60: Implemented EDN transport.
  • #140: Added initial version of spec for message responses. These are used during Clojure 1.10 tests.
  • #97: Added a sideloader, a network classloader that allows dependencies to be added even when the source/class files are not available on the server JVM's classpath (e.g. supplied by the client).

Bugs fixed

  • #152: Kill session threads when closing sessions.
  • #132: Avoid malformed bencode messages during interrupts, mainly affecting streamed printing.

Changes

  • #137: Expanded Bencode writer to work with maps that have keywords or symbols as keys. This allowed a simplification of the Bencode transport itself.
  • #158: Interrupt now runs in three stages: calls interrupt on the thread, waits 100ms for the thread to respond and return messages, then waits 5000ms for the thread to terminate itself. A hard .stop is only called if it fails to do so.
  • #178: Allow :read-cond option when evaluating code.
  • #167: Allow suppressing ack message when using nrepl.cmdline.

0.6.0

5 years ago

New features

  • #117: Replace nrepl.middleware.pr-values with nrepl.middleware.print.
    • New dynamic vars in nrepl.middleware.print for configuring the print middleware at the REPL.
    • The new middleware provides behaviour that is backwards-compatible with the old one. Existing middleware descriptors whose :requires set contains #'pr-values should instead use #'wrap-print.
  • #128: New middleware, nrepl.middleware.caught, provides a hook called when eval, read, or print throws an exception or error. Defaults to clojure.main/repl-caught. Configurable by the dynamic var nrepl.middleware.caught/*caught-fn*.

Bugs fixed

  • [CLI] Make sure ack port parameter is converted to integer for command line nREPL initialization.
  • [CLI] When starting the REPL, make sure the transport option is used correctly.
  • [CLI] Make sure calling send-ack at cmdline ns works with the correct transport.
  • #8: Clean up context classloader after eval.

Changes

  • #16: Use a single session thread per evaluation.
  • #107: Stop reading and evaluating code on first read error.
  • #108: Refactor cmdline functions into a public, reusable API.
  • Restore the nrepl.bencode namespace.