A little late to the party, but I’ve been thinking about this for some time. I figure it warrants posting the work I’ve been doing on this for Devember.
I’m Raoul, I’m enthusiastic about typescript, IOT, backend, networking, databases and embedded. I’m a student from the netherlands. You can find me on github.
I’m building a package/framework to build and run lambda/functions-ish applications. Basically, I want to make a small function in typescript, rust, go, c or c++ and run that on demand with custom input arguments.
I’ve started working on this a couple of days ago and tried getting a small prototype to work with WebAssembly modules (WASM). This would create a secure context. But I couldn’t find a way to compile typescript with all the node modules to wasm. This was a major problem, so I switched to using
npm pack to make a tgz package. Which is installed on the runner and is imported to run the ‘function’. To run rust, c and c++ I would compile to wasm and use some typescript glue to run it. Dependency management is already included in the npm package, so I don’t have to worry about that.
As of today, I’ve got a working prototype with npm pack and a simple demo runner to test functions.
Things on the roadmap are:
- Server runner
- Functions storage
- Queueing / scheduling
- Multithreading and/or clustering