metacall

A library for interoperability between Nim and multiple programming languages


Keywords
ffi, interop, interoperability, bindings, wrapper, python, nodejs, ruby, csharp, rust, c, java, javascript, typescript, cobol, rpc, wasm, meta-object-protocol, cpp, docker, faas, function-mesh, golang, gsoc, inter-language, metacall, node, polyglot, polyglot-programming, programming-language
License
Apache-2.0
Install
nimble install metacall

Documentation

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

main.js

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

sum(3, 4); // 7

shell

metacall main.js

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

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.