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-rockIn 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 9075An 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.