mrubyの概要
mruby(エムルビー)とは、組み込み機器やアプリ組み込み向けに最適化されたスクリプト言語です。
2012年4月にRubyの開発者であるまつもとゆきひろ氏が主体のもと開発(リリース)され、ISO規格に準拠したRuby言語の特徴を踏襲しつつ、より軽量化された組み込み向けのRubyとなります。
mrubyは、CPUやOSに依存せず、省リソース且つ省メモリでの環境で実行ができるため、今までRubyで動かなかった環境での組み込みを可能とします。
また、ハードリアルタイムとしてはC/C++と比べ不向きである面、ソフトリアルタイム性が要求されるプログラムとしては扱いやすい特徴を持ちます。
mrubyは、軽量化ゆえに必要最低限の機能のみ提供されていませんが、「mrbgems」というライブラリフレームワークによって容易に機能の拡張が行えます。
mrubyは、主に家電や機械などを制御するためのプログラムやネットワーク機器やデジタル機器などの組み込みシステムとして開発されます。
今も尚GitHub上で開発が進められており、GitHubのIssueページにて問題の報告や議論が記票、解決されています。
mrubyの主な特徴
主な特徴は以下のとおりです。
省メモリ | 消費するメモリ量が少なくなるよう設計されているため、プログラム実行時に消費するメモリが低く抑えられる。 現在では400KBでの動作が可能となる。 |
---|---|
CPU、OS非依存 | OSレスに対応し、C99(※)対応のコンパイラが動く環境であれば動作する。 ※ 1999年にISO/IECが定めたC言語の国際規格。 |
C言語との高い互換性 | C/C++言語で開発された既存のシステム資産と高い互換性を持つ。 C/C++からmrubyアプリの呼び出し、またはmrubyからC/C++呼び出しが可能である。 |
アプリへの組み込みが容易 | マクロ言語やDBのトランザクション言語として組み込むことができる。 柔軟性の高い設定ファイルとしても組み込み実装が可能である。 |
拡張性 | 言語仕様自体がコンパクトに設計されているため、ライブラリフレームワーク(mrbgems)を用いて必要な機能を自由に拡張することができる。 |
mrubyの主な機能
主な機能は以下のとおりです。
- 演算子オーバーロード
- 例外処理機能
- イテレータとクロージャ
- ガーベージコレクタ(インククリメンタルGC)
- ダイナミッククローディング(アーキテクチャによる)
mrubyのユースケース
mrubyは組み込み開発に長けているため、ルーターやプリンタ等の電子機器の制御インタフェース開発として活用されています。 近年ではIoT開発のフレームワークとしても利用され始めています。
mrubyの動作環境
前提となる動作環境は、以下のとおりです。
- Windows
- Linux
- Mac OS
- RTOS(ITRON、VxWorks)
- iOS
- Android
2019年8月時点
mrubyのライセンス
mrubyのライセンスは、MITライセンスを採用しています。
このライセンスの条件の下でソフトウェアのコピーや配布、ソースコードの自由な改変も認められています。
最新情報はこちらを確認ください。
mrubyのサポート
現在、OpenStandiaではmrubyのサポート提供は行っておりません。
参考情報
http://forum.mruby.org/download/index8.html
https://github.com/mruby/mruby