A Clojure CLI to the REPtiLe server to expose a shared PREPL
The CLI depends on the the server lib reptile-lib - a server that can be started in various contexts for example the dev env or the CLI.
I have a sister UI project reptile-tongue - a browser based client for REPtiLe.
In this mode, a PREPL socket server will be started as in process.
The command takes these run time parameters:
http-port
- a number above 1024, on which the web server will be exposed
shared-secret
- to hand out to clients so that they can connect
$ clojure -A:reptile 8888 warm-blooded-lizards-rock
In this mode, another process is running a PREPL socket server and REPtiLe will connect to it.
The command takes these run time parameters:
http-port
- a number above 1024, on which the web server will be exposed
shared-secret
- to hand out to clients so that they can connect
socket-host
- the host which is running the socket server
socket-port
- port number for socket server
$ clojure -A:reptile 8888 warm-blooded-lizards-rock localhost 9075
An example of an application that can be used as the other process in this mode is the add-lib-demo-app
The first version will be considered feature complete once the server provides
- Shared REPL state
- Shared view of edits in real-time
- Shared REPL history
- Authentication using shared secret
- Dynamic addition of new libraries to the REPL
- Documentation to explain client / server hosting options
- Limit user count (2, 3, 4, etc...)
- Limit users based on user names (jane, joe, mary, etc...)
After the initial version these additional features are planned
- Incremental feedback on long running REPL evaluations
- Cancel long running REPL evaluations
- Choice of Java / node runtime REPLs
- Investigate GraalVM
Copyright © 2018 Ray McDermott
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.