Skip to content

elct9620/mruby.wasm

Repository files navigation

mruby.wasm

Binding mruby to WebAssembly use WebIDL

Requirements

  • Emscripten SDK
  • Ruby
  • Rake
  • Python

Compile

To compile project, please make sure your emsdk is already configured with $EMSDK environment and emcc command.

Please make sure you are use LLVM version instead Fastcomp version. The LLVM version can install by use emsdk install latest-upstream.

libmruby

Compile mruby and generate libmruby.bc

rake libmruby

WebIDL Glue

Generate glue.cpp and glue.js for WebIDL

rake mruby.idl

WebAssemtly

Generate mruby's WebAssembly file

rake wasm
rake js
rake html

The rake html is default task, you can specify which output you wants

If you want to minify for production, please add MINIFY environment

MINIFY=1 rake html

Usage

Local PlayGround

Prepare WebAssembly

# Create mruby.html
rake html

# Serve mruby.wasm
ruby -run -e httpd .

Goto http://localhost:8080/mruby.html and open the console to execute ruby code.

var ruby = new Ruby()
ruby.Execute('puts "Hello World"')

Production

Prepare WebAssembly

rake js

Copy mruby.js and mruby.wasm to your project and load WebAssembly by yourself.

Currently this project is for prototype to test use mruby on browser, it is not stable!

References