# Mink ### The scripting language for all

Mink is a fast, simple and modular scripting language built on top of Rust. While it was originally targeted as a language for game engines, it now lives as a general-purpose language for any project.

### Simple

Mink's syntax is simple, clear and explicit. On the user-end, it allows for dynamic typing and fast prototyping.

### Developer-friendly

On the developer-end, Mink focuses on providing a simple but powerful API. Mink is completely modular as a language, allowing developers to implement their own libraries with ease (even the standard library!).

### Example: Greet

Mink print("Hi, Diego!")

```Rust 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");

} ```

### Example: Custom Library

```Rust // mathlib.rs use mink::*;

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

fn mathmag(: &Mink, args: Vec) -> Value { let x = args[0].num(); let y = args[1].num(); Value::Num((x * x + y * y).sqrt()) } ```

```Rust // main.rs mod mathlib;

use mink::*;

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

Things to note: - Variables start with a dollar sign ($). - There is no need for semicolons. - The "print" function is provided by the developer.