#多语言 #跨语言 #多语言编程

metacall

从 Rust 调用 NodeJS、TypeScript、Python、C#、Ruby... 等语言的函数(MetaCall 的 Rust 端口)。

9 个版本

0.4.1 2024年7月29日
0.4.0 2023年6月14日
0.3.0 2022年4月7日
0.2.1 2020年11月6日
0.1.1 2020年10月23日

40FFI

Download history 2/week @ 2024-05-21 2/week @ 2024-06-04 14/week @ 2024-06-11 12/week @ 2024-06-18 23/week @ 2024-07-02 61/week @ 2024-07-23 113/week @ 2024-07-30

每月下载量 174

Apache-2.0

330KB
8K SLoC

M E T A C A L L

M E T A C A L L

一个提供跨语言外部函数接口调用的库

摘要

METACALL 是一个库,允许在编程语言之间调用函数、方法或过程。使用 METACALL,您可以透明地执行任何编程语言的代码,例如,从 Rust 调用 TypeScript 代码。

安装

MetaCall 是一个基于 C 的插件库。这个 crate 将 C 库封装到 Rust 中,因此为了使其工作,您首先应该安装 MetaCall 二进制文件(点击此处 以在其他平台上安装)

curl -sL https://raw.githubusercontent.com/metacall/install/master/install.sh | sh

示例

sum.ts

export function sum(a: number, b: number): number {
	return a + b;
}

main.rs

use metacall::{switch, metacall, loaders};

fn main() {
    // Initialize Metacall at the top
    let _metacall = switch::initialize().unwrap();
     
    // Load the file
    loaders::from_single_file("ts", "sum.ts").unwrap();

    // Call the sum function
    let sum = metacall::<f64>("sum", [1.0, 2.0]).unwrap();

    assert_eq!(sum, 3.0);
}

依赖项

~80KB