DEV Community

Cover image for Gitpodify the MetaCall
Siddhant Khare
Siddhant Khare

Posted on

Gitpodify the MetaCall

What is MetaCall?

MetaCall helps you build serverless applications using a more fine-grained, scalable and NoOps oriented Function Mesh instead of ServiceMesh and DevOps approach. It automagically converts your code into a Function Mesh and auto-scales individual hot parts or functions of your app.

Need of an Automated Cloud Dev Environment

As MetaCall being an Open Source Software, the major block to start contributing to the Project is to Setup the Project Locally with all custom configurations, tools, libraries that a particular project requires. And I've been with MetaCall for a year, and the majority of the queries we get on our internal discord server are about setup and dealing with various issues. That's how I started, too. So with this Automated Cloud Dev Environment on Gitpod, you can just code, build, test, and ship without having to worry about setting up all the environments!

In this blog, i will be automating the setup of metacall/core on Gitpod.

I will be automating this Installation official docs of MetaCall

Step 1: Create a .gitpod.yml file in Root

official Docs for configuring the .gitpod.yml: config-gitpod-file

For This Project, requirement was to build the project, pulling metacall docker images & executing them.


tasks:

- name: Build Metacall
  init: |
    mkdir build && cd ./build
    cmake ..
    cd ..
  command:
    sudo env PATH=$PATH cmake --build . --target install

- name: Pulling metacall Docker Images
  init: |
    docker pull metacall/core
    docker pull metacall/core:dev
    mkdir -p $HOME/metacall
  command:
    docker run -e LOADER_SCRIPT_PATH=/metacall -v $HOME/metacall:/metacall -w /metacall -it metacall/core:dev /bin/bash

- name: Pulling metacall-cli Docker Image
  init: |
    docker pull metacall/core:cli
  command:
    docker run -e LOADER_SCRIPT_PATH=/metacall -v $HOME/metacall:/metacall -w /metacall -it metacall/core:cli

Enter fullscreen mode Exit fullscreen mode

Tasks Description

  • Task 1: It will Build all the files

Build MetaCall

metacall/core:dev docker image

MetaCall CLI

At the time of workspace preparation, this .gitpod.yml file will setup all of the essential environments. and Your Project Will be ready to code under _ 60 seconds_ (Gitpod โšก)

See it in Action

Click the button below. A workspace with all required environments will be created.

Open in Gitpod

To use it on your forked repo, edit the 'Open in Gitpod' button url to https://gitpod.io/#https://github.com/<your-github-username>/core


My Pull Request: gitpodify the metacall/core ๐Ÿš€


Repository of Gitpod, an Automated Open Source Cloud Dev. Environment. Use it or just give it a ๐ŸŒŸ for their amazing work.

GitHub logo gitpod-io / gitpod

The developer platform for on-demand cloud development environments to create software faster and more securely.

Gitpod banner image

Gitpodโ€™s developer platform provides on-demand, pre-configured environments that automatically integrate into any tool, library, or dependency required for creating software. Gitpod workspaces are the fastest and most secure way to ship software and are as easy as adding a .gitpod.yml file to the root of any repository.

๐Ÿ“„ Read Cloud Development Environment white paper

Features

  • Dev environments as code - Gitpod is like infrastructure-as-code, but for your development environment. Gitpod defines your editor extensions and requires dependencies in a declarative .gitpod.yml configuration. Spinning up dev environments is easily repeatable and reproducible empowering you to automate, version-control, and share dev environments across your team.
  • Prebuilt dev environments - Gitpod continuously prebuilds all your git branches similar to a CI server. Control how Gitpod pre-configures and initializes environments before you even start a workspace through tasks commands in your .gitpod.yml. No more watching apt-get or npm install again.ย 
  • Secure -โ€ฆ





Repository of MetaCall/Core, give it a ๐ŸŒŸ

GitHub logo metacall / core

MetaCall: The ultimate polyglot programming experience.

METACALL

MetaCall Polyglot Runtime

MetaCall.io | Install | Docs

MetaCall allows calling functions, methods or procedures between multiple programming languages.

sum.py

def sum(a, b):
  return a + b
Enter fullscreen mode Exit fullscreen mode

main.js

const { sum } = require('./sum.py');

sum(3, 4); // 7
Enter fullscreen mode Exit fullscreen mode

shell

metacall main.js
Enter fullscreen mode Exit fullscreen mode

MetaCall is an extensible, embeddable, and interoperable cross-platform polyglot runtime. It supports NodeJS, Vanilla JavaScript, TypeScript, Python, Ruby, C#, Java, WASM, Go, C, C++, Rust, D, Cobol and more.

Install

The easiest way to install MetaCall is the following:

curl -sL https://raw.githubusercontent.com/metacall/install/master/install.sh | sh
Enter fullscreen mode Exit fullscreen mode

For more information about other install methodologies and platforms or Docker, check the install documentation.

Examples

You can find a complete list of examples in the documentation. If you are interested in submitting new examples, please contact us in our chats.




Other Related Blog:

Top comments (0)