Skip to content

metacall/faas

Repository files navigation

MetaCall FaaS

Reimplementation of MetaCall FaaS platform written in TypeScript. This project requires MetaCall installed in order to run it. For more information about installation: https://github.com/metacall/install

Development

npm install
npm start

About Project

MetaCall organization has its own cloud platform known as MetaCall Hub, a production-ready and high-performance FaaS/Cloud platform where you can deploy services, web apps, and lambdas in seconds. However, the Real version of MetaCall FaaS is commercialized and requires a plan to deploy your polyglot applications, which can be found Here.

When referring to the Real version of MetaCall FaaS, it should be noted that this refers to the commercialized FaaS cloud service, whereas Local refers to the mimic version.

Soon, we realized that many contributors joining the community needed an paid account on the Real FaaS for testing their polyglot applications. To remove this barrier, we proposed a project that would mimic the Real FaaS.

With this project, developers can now use it to deploy and test their polyglot applications (built using MetaCall Core), web apps, and lambdas. The process is simple:

  • Step 1 : Spin up the "Local FaaS" by running the following command:
cd faas
npm start
  • Step 2 : Install the metacall-deploy NPM package, and wire the --dev flag with the metacall-deploy command in your application directory using the following command:
cd move-to-application-directory
metacall-deploy --dev

Things that need to be implemented

  • In order to mimic the "Real FaaS", we need to create all the API endpoints that the "Real FaaS" supports, which can be found listed Here.

Important Note

  • This project is still under development and there is one extra thing you need to install before running this project and its MetaCall Core.

  • This project is developed using [MetaCall Core] itself in order to provide polyglot support, we are using its Node Port of this library to use all the functions and methods MetaCall Core C API provides.

  • Also, Here are all the functions of MetaCall Core we are using.

Testing

This will run a test, and if the docker compose up test command exits with exit code 0, it will mean that the test has passed. If you want to see the output of the FaaS, run docker compose up instead. But when running this, the command won't terminate once the test finishes and the FaaS will keep running. You will need to press Ctrl+C in order to close it.

docker compose build
docker compose up test
docker compose down