I recently released a basic self-hosted, we based Scala REPL called Tinsmith (alternatively play with the online demo). If you've been following Scala news recently you may have noticed a similar project codebrew.io being talked about and in fact Tinsmith is heavily built off the same stack.
So why bother doing yet another REPL/Worksheet when one already exists? Well the first spike came into existence because codebrew.io was rather sluggish one day I was using it and I wanted something I could run locally or deploy to a dedicated remote instance when I needed. Then as I had my own instance running there were things I realised I wanted to do differently or didn't need at all and so rather than cloning codebrew I decided to use some common techs to produce a slightly different experience.
- Tinsmith doesn't execute code automatically instead you need to explicitly execute code by
- Tinsmith doesn't have the bells and whistles such as Doc lookup and autocomplete
- Tinsmith doesn't have Github integration (though it did have gist integration at one point but I decided against it)
- Tinsmith does save the code to the querystring to make pages bookmarkable (like jsconsole)
- Tinsmith does return the console output as well as the REPL output
- Tinsmith does explicitly include some useful libs (Scala Utils, Scalaz, Guava etc.)
- Tinsmith does run as a single application and can be quickly deployed to Heroku
- Tinsmith does use WebSockets instead of Ajax
This is in no way meant to act as competition to the clearly better codebrew.io - it's simply something I needed quickly and decided other people might benefit from it as well. Afterall it's just the scala-codesheet and codemirror thrown together with a bit of webby glue.