This project contains the code of the Stip.js project, a tool for splitting tierless JavaScript programs. At the moment this is a very early prototype, meaning that we only support a small subset of JavaScript. To show that the tierless code is pure JavaScript, we added tabs for other JavaScript tools to analyse the code. The tool can also be used to slice JavaScript code or perform CPS transformations on it. Try it out here!
STiP.js makes use of Jipda, a JavaScript Introspective Pushdown Analysis. Based on this analysis, we construct a distributed program dependency graph. The output of this analysis can be inspected via the Jipda tab.
At the moment we rewrite the splitted code to Meteor or Node.js code. For Node.js we use the asyncCall library for remote communication. This library has a high configurability and a variety of failure handling mechanisms. For Meteor, we use the framework for remote communication between clients and servers (more info). Client and server side code can be pasted in files in the appropriate directories (client or server) of a Meteor project.
- Towards Tierless Web Development without Tierless Languages. Philips, Laure; De Roover, Coen; Van Cutsem, Tom; De Meuter, Wolfgang. Onward! '14. ACM, 2014. (Proceedings of the ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software Proceedings). link
- Tierless Programming in JavaScript. Philips, Laure; De Meuter, Wolfgang; De Roover, Coen. 37th International Conference on Software Engineering (ICSE 2015). IEEE, 2015. p. 831-832. link
We plan to
- Support a bigger subset of JavaScript
- Horizontal distribution
- Rewrite to other frameworks
- ...
In case of questions, suggestions, etc. : lphilips at vub.ac.be