History
There and Back Again
nREPL has had an unusual history, which seems worthwhile documenting here.
nREPL started as a personal project of mine @ https://github.com/cemerick/nREPL in 2010. After an initial period of interest from various downstream tool authors, it was invited to be one of the initial three projects in the "new" Clojure Contrib family of projects later that year, and thus moved to https://github.com/clojure/tools.nrepl.
nREPL grew and stabilized under the Contrib umbrella for years. Various collaboration and process challenges, differences of opinion, and changing work priorities eventually led to work on nREPL slowing significantly, to the frustration of its most active users.
Eventually, I proposed migrating nREPL out of Clojure Contrib in the summer of 2017 (https://github.com/nrepl/nrepl/issues/1), with the objective of reconstituting an environment where the people most interested in and impacted by nREPL could participate in its development as easily as possible.
Cheers,
Chas
To Infinity and Beyond
In the spring of 2018 Chas decided to hand over the development of
nREPL (and key middleware like piggieback
and drawbridge
) to the
team behind CIDER and the efforts to build awesome Clojure dev tools
powered by editor-independent nREPL middleware (e.g. cider-nrepl
,
refactor-nrepl
). Important milestones achieved afterwards were the
release of the transitional release nREPL 0.3, which simply changed
the deployment coordinates to nrepl/nrepl
, but is otherwise
identical to tools.nrepl
0.2.3, and the subsequent release of nREPL
0.4 which switched the namespaces of the project to nrepl.*
and
started delivering on the promise to fix long-standing problems.
We’re really excited to advance nREPL forward and to build many sweet REPLs on top of it!
Looking forward to seeing you around! We need all the help we can get!
Cheers,
Bozhidar (a.k.a. Bug)
Notable Milestones
-
21 Sep 2011 - Initial commit by Chas Emerick.
-
11 Oct 2011 - 0.0.1 release.
-
Spring 2012 - Work begins on a bunch of nREPL clients (most notably REPLy and CIDER).
-
13 Jan 2013 - 0.2.0 release brings a massive redesign.
-
Spring 2018 - Bozhidar Batsov, the author of CIDER, becomes nREPL’s maintainer and vows to revive the project’s development and realize its full potential.
-
18 May 2018 - nREPL officially leaves Clojure contrib and version 0.3 is released with the updated coordinates
nrepl/nrepl
. -
05 Feb 2019 - nREPL 0.6 introduces
nrepl.middleware.print
that replacesnrepl.middleware.pr-values
. -
28 Mar 2020 - nREPL 0.7 introduces a built-in EDN transport and the ability to sideload code dynamically into a running nREPL server.
-
01 Aug 2020 - nREPL 0.8 introduces built-in
lookup
andcompletions
ops. It’s now possible to dynamically load/unload middleware. -
12 Dec 2021 - nREPL 0.9 introduces support for UNIX domain sockets.