Lambdo is a Serverless runtime in Rust, which is inspired by AWS Lambda. It's aim is to provide a simple and fast way to run the code on Polycode platform.
The first step is to compile all the necessary stuff to run the code. To do so, you need :
- A Linux kernel (>= 4.14) complied without initramfs bundled but with the lzma compression support.
- Build the initramfs with the
initramfsfolder in this repository including the sdk of the language you want to use and a working init script. - Create a configuration file for lambdo see the example in
examples/node/config.yaml.
You MUST have to install KVM on your machine to run the runtime.
To start the runtime, you need to run the lambdo binary with the configuration file as argument :
$ lambdo --config /path/to/config.yamlor use Docker image :
$ docker run -it --privileged -p 3000:3000 \
-v /path/to/config:/etc/lambdo/config.yaml \
-v /path/to/initramfs:/var/lib/lambdo/initramfs \
-v /path/to/kernel:/var/lib/lambdo/kernel/vmlinux.bin \
faastrt/lambdoIf you want to run lambdo for a test, you can use the docker-compose file that will use the examples/node folder as configuration folder.
$ docker-compose up
# then you can run the following command to call the runtime
$ curl --location 'http://127.0.0.1:3000/run' \
--header 'Content-Type: application/json' \
--data '{
"language": "NODE",
"version": "1.0.0",
"input": "",
"code": [{
"filename": "main.js",
"content": "console.log('\''Hello World!'\'')"
}]
}'Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate and follow Angular instruction for commit name (here).