Aim of this project is to create a set of tools that will help to create rich internet applications using the Scala language. That is compilation of programs written in Scala to JavaScript and runtime environment which should enable execution of the compiled code in modern web browsers. On top of that, advanced libraries or features can be built in order to simplify tasks, that aren't very progrmmer-friendly to implement directly in JavaScript. Unlike ScalaGWT, it should be completely separated from any web application framework, so existing frameworks would be easily integratable into the Swat. Or new frameworks implemented directly in Scala could be created from scratch.
Component | Status |
---|---|
Scala to JavaScript compiler. | 100% |
Type safe adapters of existing & native JavaScript objects (and means of simple integration). | 100% |
Runtime that would support execution of the compiled code. | 100% |
Port of the most important Scala Library classes to JavaScript (hopefully with big help of Swat). | 40% |
Object graph serializer/deserializer to/from JSON. | 100% |
Remote procedure call mechanism between the client-side and the server-side. | 100% |
Classloader that can dynamically fetch compiled class definitions from the server on the fly. | 100% |
Other possibilities stemming from new web browser features should be at least investigated from the feasibility point of view. And optionally implemented as a proof of concept.
Component | Status |
---|---|
Actors-like abstraction based on web workers. | 25% |
Web sockets. | 0% |
Template engine based on Scala XML support, or rather string interpolation. | 0% |