A netstring and bencode implementation for Clojure.
A netstring and bencode implementation for Clojure.
A proof-of-concept command-line client for nREPL. Please see e.g. REPL-y for a proper command-line nREPL client @ https://github.com/trptcolin/reply/
A proof-of-concept command-line client for nREPL. Please see e.g. REPL-y for a proper command-line nREPL client @ https://github.com/trptcolin/reply/
Server configuration utilities. Some server options can be configured via configuration files (local or global). This namespace provides convenient API to work with them.
The config resolution algorithm is the following: The global config file .nrepl/nrepl.edn is merged with any local config file (.nrepl.edn) if present. The values in the local config file take precedence.
Server configuration utilities. Some server options can be configured via configuration files (local or global). This namespace provides convenient API to work with them. The config resolution algorithm is the following: The global config file .nrepl/nrepl.edn is merged with any local config file (.nrepl.edn) if present. The values in the local config file take precedence.
High level nREPL client support.
High level nREPL client support.
Support for a hook for conveying errors interactively, akin to the :caught
option of clojure.main/repl
. See the docstring of wrap-caught
and the
Evaluation Errors section of the Middleware documentation for more
information.
Support for a hook for conveying errors interactively, akin to the `:caught` option of `clojure.main/repl`. See the docstring of `wrap-caught` and the Evaluation Errors section of the Middleware documentation for more information.
Code completion middleware.
The middleware is a simple wrapper around the
functionality in nrepl.completion
. Its
API is inspired by cider-nrepl's "complete" middleware.
The middleware can be configured to use a different completion function via a dynamic variable or a request parameter.
NOTE: The functionality here is experimental and the API is subject to changes.
Code completion middleware. The middleware is a simple wrapper around the functionality in `nrepl.completion`. Its API is inspired by cider-nrepl's "complete" middleware. The middleware can be configured to use a different completion function via a dynamic variable or a request parameter. NOTE: The functionality here is experimental and the API is subject to changes.
Support the ability to interactively update the middleware of the running nREPL server. This can be used by tools to configure an existing instance of an environment after connection.
It can also be used to load extra namespaces, in addition to the ones that new middleware are defined in, to handle existing middleware that performs deferred loading.
Support the ability to interactively update the middleware of the *running* nREPL server. This can be used by tools to configure an existing instance of an environment after connection. It can also be used to load extra namespaces, in addition to the ones that new middleware are defined in, to handle existing middleware that performs deferred loading.
Supports the ability to evaluation code. The name of the middleware is slightly misleading, as interrupt is currently supported at a session level but the name is retained for backwards compatibility.
Supports the ability to evaluation code. The name of the middleware is slightly misleading, as interrupt is currently supported at a session level but the name is retained for backwards compatibility.
Symbol info lookup middleware.
It's meant to provide you with useful data like definition location, parameter lists, etc.
The middleware can be configured to use a different lookup function via a dynamic variable or a request parameter.
NOTE: The functionality here is experimental and the API is subject to changes.
Symbol info lookup middleware. It's meant to provide you with useful data like definition location, parameter lists, etc. The middleware can be configured to use a different lookup function via a dynamic variable or a request parameter. NOTE: The functionality here is experimental and the API is subject to changes.
Support for configurable printing. See the docstring of wrap-print
and the
Pretty Printing section of the Middleware documentation for more information.
Support for configurable printing. See the docstring of `wrap-print` and the Pretty Printing section of the Middleware documentation for more information.
Support for persistent, cross-connection REPL sessions.
Support for persistent, cross-connection REPL sessions.
Misc utilities used in nREPL's implementation (potentially also useful for anyone extending it).
Misc utilities used in nREPL's implementation (potentially also useful for anyone extending it).
Default server implementations
Default server implementations
Compatibility layer for java.io vs java.nio sockets to allow an incremental transition to nio, since the JDK's filesystem sockets don't support the java.io socket interface, and we can't use the compatibility layer for bidirectional read and write: https://bugs.openjdk.java.net/browse/JDK-4509080.
Compatibility layer for java.io vs java.nio sockets to allow an incremental transition to nio, since the JDK's filesystem sockets don't support the java.io socket interface, and we can't use the compatibility layer for bidirectional read and write: https://bugs.openjdk.java.net/browse/JDK-4509080.
Socket-related code that depends on classes that are only known at run time, not compile time. This just allows us to isolate reflections we can't avoid, so that we can easily ask eastwood to ignore them. This namespace should only be needed until JDK 16+ can be assumed.
Socket-related code that depends on classes that are only known at run time, not compile time. This just allows us to isolate reflections we can't avoid, so that we can easily ask eastwood to ignore them. This namespace should only be needed until JDK 16+ can be assumed.
Interacting with the Java crypto APIs is one of the worst things you can do as a developer. I'm so sorry about all of this.
Interacting with the Java crypto APIs is one of the worst things you can do as a developer. I'm so sorry about all of this.
Proxy a local regular TCP connection to a remote TLS TCP connection. Can be used if your editor/IDE does not (yet) support TLS connections.
Example usage: $ clojure -Sdeps '{:aliases {:proxy {:deps {nrepl/nrepl {:mvn/version "1.3.0"}} :exec-fn nrepl.tls-client-proxy/start-tls-proxy :exec-args {:remote-host "localhost" :remote-port 4001 :bind 9001 :tls-keys-file "client.keys"}}}}' -T:proxy
This will start a standalone program that will forward local TCP connections on 127.0.0.1:9001
to the remote TLS TCP connection at 127.0.0.1:4001 using the key provided in the file client.keys
.
Proxy a local regular TCP connection to a remote TLS TCP connection. Can be used if your editor/IDE does not (yet) support TLS connections. Example usage: $ clojure -Sdeps '{:aliases {:proxy {:deps {nrepl/nrepl {:mvn/version "1.3.0"}} :exec-fn nrepl.tls-client-proxy/start-tls-proxy :exec-args {:remote-host "localhost" :remote-port 4001 :bind 9001 :tls-keys-file "client.keys"}}}}' -T:proxy This will start a standalone program that will forward local TCP connections on 127.0.0.1:9001 to the remote TLS TCP connection at 127.0.0.1:4001 using the key provided in the file `client.keys`.
Creating and managing classloaders supplied to evaluated code.
Creating and managing classloaders supplied to evaluated code.
Code completion functionality.
This namespace is based on compliment-lite. (https://github.com/alexander-yakushev/compliment/tree/master/lite)
The functionality here is experimental and the API is subject to changes.
Code completion functionality. This namespace is based on compliment-lite. (https://github.com/alexander-yakushev/compliment/tree/master/lite) The functionality here is experimental and the API is subject to changes.
This namespace contains code exclusive to JDK9+ and should not be attempted to load with earlier JDKs.
This namespace contains code exclusive to JDK9+ and should not be attempted to load with earlier JDKs.
Symbol info lookup.
It's meant to provide you with useful data like definition location, parameter lists, etc.
NOTE: The functionality here is experimental and the API is subject to changes.
Symbol info lookup. It's meant to provide you with useful data like definition location, parameter lists, etc. NOTE: The functionality here is experimental and the API is subject to changes.
Pretty-print related utilities. All functions here are simple wrappers compatible with the expectations of nrepl.middleware.print/wrap-print.
Pretty-print related utilities. All functions here are simple wrappers compatible with the expectations of nrepl.middleware.print/wrap-print.
Functions and tools for dealing with all threads and threadpools necessary for nREPL operation.
Functions and tools for dealing with all threads and threadpools necessary for nREPL operation.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close