#scripting-language #modular-scripting #portable

bin+lib mink

(WIP) 为所有人提供的便携式和模块化脚本语言

2 个版本

0.1.1 2022 年 8 月 13 日
0.1.0 2022 年 8 月 13 日

595编程语言

MIT 许可证

18KB
428

Mink

适合所有人的脚本语言

Mink 是一种基于 Rust 的快速、简单且模块化的脚本语言。虽然最初的目标是作为游戏引擎的语言,但现在它已成为任何项目的通用语言。

简单

Mink 的语法简单、清晰且明确。在用户端,它允许动态类型和快速原型设计。

开发者友好

在开发者端,Mink 专注于提供简单但强大的 API。Mink 作为一种语言,是完全模块化的,允许开发者轻松实现自己的库(即使是标准库!)。

示例:问候

print("Hi, Diego!")
use mink::*;

fn main() {
    let mut vm = Mink::new();
    
    let script = Script::new("greeting", include_str!("greeting.mink"));
    vm.add_script(script);
    
    vm.exec("greeting");
}

示例:自定义库

// mathlib.rs
use mink::*;

pub fn lib() -> Library {
    let mut lib = Library::new("math", true);
    lib.add_func(Function::new("mag", Some(2), math_mag));
    lib
}

fn math_mag(_: &Mink, args: Vec<Value>) -> Value {
    let x = args[0].num();
    let y = args[1].num();
    Value::Num((x * x + y * y).sqrt())
}
// main.rs
mod mathlib;

use mink::*;

fn main() {
    let vm = Mink::new();
    vm.add_lib(mathlib::lib());
}

依赖项

~2.1–4.5MB
~72K SLoC