| Crates.io | mrubyedge-cli |
| lib.rs | mrubyedge-cli |
| version | 1.0.18 |
| created_at | 2025-11-23 14:06:21.822238+00 |
| updated_at | 2026-01-11 08:21:34.322939+00 |
| description | mruby/edge cli endpoint - run, compile to wasm, etc. |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1946607 |
| size | 54,642 |
Command-line interface for mruby/edge - a lightweight, WebAssembly-focused mruby VM implementation.
mruby/edge is an mruby-compatible virtual machine implementation written in Rust, specifically designed for WebAssembly environments. It aims to provide:
.mrb files) and Ruby source codeInstall mrubyedge-cli using cargo:
cargo install mrubyedge-cli
Or build from source:
git clone https://github.com/mrubyedge/mrubyedge.git
cd mrubyedge
cargo build --release -p mrubyedge-cli
The binary will be available as mrbedge.
Create a simple Ruby script hello.rb:
puts "Hello from mruby/edge!"
puts RUBY_ENGINE
Run it with mrbedge:
mrbedge hello.rb
# or explicitly
mrbedge run hello.rb
run - Execute Ruby ScriptsThe run subcommand executes Ruby source files (.rb) or compiled mruby bytecode (.mrb).
Usage:
mrbedge run <file>
# or simply
mrbedge <file>
Examples:
# Run Ruby source
mrbedge run script.rb
# Run compiled bytecode
mrbedge run script.mrb
compile-mrb - Compile Ruby to BytecodeCompiles Ruby source code into mruby bytecode format for faster loading and distribution.
Usage:
mrbedge compile-mrb <input.rb> -o <output.mrb>
Examples:
# Compile a single file
mrbedge compile-mrb app.rb -o app.mrb
# Run the compiled bytecode
mrbedge run app.mrb
Benefits:
wasm - Generate WebAssembly ModulesCompiles Ruby code directly into a standalone WebAssembly module that can run in browsers or any WebAssembly runtime.
Usage:
mrbedge wasm <input.rb> -o <output.wasm>
Examples:
# Generate WebAssembly module
mrbedge wasm app.rb -o app.wasm
# Use in browser or Node.js
# The generated WASM can be loaded and executed in any WASM runtime
Use Cases:
The wasm command can generate both WASI-enabled and non-WASI WebAssembly binaries. By default, it produces WASI-enabled modules. To disable WASI support, use the --no-wasi flag.
You can specify WebAssembly function imports and exports using RBS (Ruby Signature) files. Place RBS files with specific naming conventions alongside your Ruby script:
For a Ruby script named foo.rb:
foo.import.rbs: Defines external functions to import from the WebAssembly hostfoo.export.rbs: Defines Ruby functions to export as WebAssembly functionsExample:
# app.rb
def calculate(x, y)
x + y
end
# app.export.rbs
def calculate: (Integer, Integer) -> Integer
# app.import.rbs
def external_log: (String) -> void
The generated WebAssembly module will expose calculate and can call external_log from the host environment.
Note: Inline RBS annotations for imports and exports will be supported in future releases.
See the LICENSE file in the repository root.