I've read Tessel's code and I've been inspired on many point by their work. Here are some differences in goals and implementation between Colony and CASTL I can tell:
- CASTL is aimed to run on an unmodified Lua 5.2 interpreter whereas Colony rely on a fork of Lua 5.1.
- CASTL can run on LuaJIT, not Colony (but they're working on it)
- CASTL supports eval() function and Function() constructor (yep, I'm proud of that :p)
-
castl.js
is not bound to any parser whereas Colony is bound to a modified version of Acorn. -
castl.js
is NodeJS independent, it can be executed in Node as well as in a web browser. - Colony has a good support of NodeJS (objects, libraries...) whereas it's almost nonexistent in CASTL.
- License is different (CASTL is under LGPLv3 and Colony is under MIT/Apache).
- Regarding performance, roughly: Colony is slightly faster than CASTL on Lua5.2 (because they modified directly the VM), but CASTL on LuaJIT is much faster