rurust

Crates.iorurust
lib.rsrurust
version0.2.0
sourcesrc
created_at2016-05-15 12:52:27.288825
updated_at2021-02-13 15:16:54.318661
descriptionHigh level Ruby VM bindings
homepage
repositoryhttps://github.com/dylanmckay/rurust
max_upload_size
id5076
size33,476
Dylan McKay (dylanmckay)

documentation

https://docs.rs/rurust

README

rurust

Build Status Crates.io MIT licensed

A Rust wrapper over the MRI Ruby VM.

Documentation

Allows you to create a Ruby VM, eval code, plug classes, define modules, and insert C functions into the environment.

For a more high level library, take a look at plugger.

Examples

A simple REPL

extern fn callable_from_ruby() {
    println!("Hello World!");
}

fn main() {
    let mut vm = rurust::VM::new().unwrap();

    vm.class("Rust").
        method("hello_world", callable_from_ruby as *const _, 0).
        method("foo", callable_from_ruby as *const _, 0).
        build();

    loop {
        let mut line = String::new();
        std::io::stdin().read_line(&mut line).unwrap();

        let result = vm.eval(&line);
        println!("{:?}", result);
    }
}

Commit count: 54

cargo fmt