mruby 开源项目教程
mrubyLightweight Ruby项目地址:https://gitcode.com/gh_mirrors/mr/mruby
项目介绍
mruby 是一个轻量级的 Ruby 语言实现,符合 ISO 标准的一部分,并且支持 Ruby 3.x 的最新特性。mruby 的语法与 Ruby 3.x 兼容,除了模式匹配之外。mruby 可以在应用程序中链接和嵌入,提供了 "mruby" 解释器程序和交互式 "mirb" shell 作为示例。此外,mruby 还提供了 "mrbc" 编译器,可以将 Ruby 程序编译成字节码。所有这些工具都位于 "bin" 目录中。
项目快速启动
安装 mruby
首先,克隆 mruby 仓库到本地:
git clone https://github.com/mruby/mruby.git
cd mruby
编译 mruby
在 mruby 目录下,运行以下命令进行编译:
make
运行示例程序
编译完成后,可以在 "bin" 目录下找到 "mruby" 和 "mirb" 程序。运行 "mirb" 进行交互式编程:
./bin/mirb
或者运行 "mruby" 执行 Ruby 脚本:
echo "puts 'Hello, mruby!'" > hello.rb
./bin/mruby hello.rb
应用案例和最佳实践
嵌入到 C 应用程序
mruby 可以嵌入到 C 应用程序中,提供脚本功能。以下是一个简单的示例:
#include <mruby.h>
#include <mruby/compile.h>
int main(void) {
mrb_state *mrb = mrb_open();
if (!mrb) { /* handle error */ }
char code[] = "puts 'Hello, mruby from C!'";
mrb_load_string(mrb, code);
mrb_close(mrb);
return 0;
}
使用 mrbgems 扩展功能
mruby 包含一个名为 "mrbgems" 的包管理器,可以用来创建扩展。以下是一个简单的示例:
- 创建一个新的 mrbgem:
mkdir -p mrbgems/example_gem
touch mrbgems/example_gem/example_gem.gem
- 在
build_config.rb
中添加 gem:
conf.gem 'mrbgems/example_gem'
- 编写 Ruby 代码和 C 代码,然后重新编译 mruby。
典型生态项目
mruby-sqlite
mruby-sqlite 是一个 mruby 的 SQLite 绑定,提供了对 SQLite 数据库的访问:
db = SQLite3::Database.new("test.db")
db.execute("CREATE TABLE IF NOT EXISTS test (id INTEGER PRIMARY KEY, name TEXT)")
db.execute("INSERT INTO test (name) VALUES (?)", "mruby")
db.close
mruby-http
mruby-http 是一个 mruby 的 HTTP 客户端库,可以用来发送 HTTP 请求:
http = HTTP::Client.new("www.example.com")
response = http.get("/")
puts response.body
通过这些生态项目,mruby 可以扩展其功能,满足更多应用场景的需求。
mrubyLightweight Ruby项目地址:https://gitcode.com/gh_mirrors/mr/mruby