WS middleware server for REPtiLe - a shared REPL
Switch branches/tags
Nothing to show
Clone or download
Latest commit f61e3bc Sep 29, 2018
Permalink
Failed to load latest commit information.
src/reptile/tail
.gitignore
CHANGELOG.md
LICENSE
README.md
deps.edn

README.md

REPtiLe server CLI

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.

Usage - standalone mode

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

Usage - connected mode

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

Plan

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...)

Planned features

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

License

Copyright © 2018 Ray McDermott

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.