elct9620 / mruby.wasm

mruby WebAssembly using WebIDL

Home Page:https://mruby-wasm.aotoki.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

mruby WebAssembly using WebIDL

https://mruby-wasm.aotoki.dev


Languages

Language:HTML 70.4%Language:Ruby 26.2%Language:C++ 2.7%Language:JavaScript 0.6%