A lightweight Ruby implementation designed for embedding and linking within applications, with ISO standard compliance.
mruby is a lightweight implementation of the Ruby programming language, designed to be embedded and linked within other applications. It solves the problem of bringing Ruby's expressive syntax and features to environments where a full Ruby interpreter is too heavy, such as embedded systems or performance-critical applications. It complies with part of the ISO standard and maintains compatibility with Ruby 4.x.
Developers working on embedded systems, game engines, or applications needing a lightweight scripting language, as well as those looking to embed Ruby within C/C++ projects.
Developers choose mruby for its minimal footprint, embeddability, and compliance with Ruby standards, allowing them to leverage Ruby's productivity in constrained environments without the overhead of a full interpreter.
Lightweight Ruby
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
mruby is optimized for size, making it ideal for embedded systems and resource-constrained environments, as highlighted in its design philosophy.
Supports amalgamation into single C files (mruby.c and mruby.h), simplifying integration into C/C++ applications, similar to SQLite's approach as documented in the README.
Maintains syntax compatibility with Ruby 4.x, allowing use of recent language features in lightweight contexts, as stated in the project description.
Includes a package manager for adding extensions in C or Ruby, enabling customization for specific project needs, with guides and examples provided in the documentation.
Only adheres to part of the Ruby ISO standard, meaning some Ruby features and libraries are missing or incomplete, as noted in the limitations documentation linked from the README.
Embedding requires C/C++ knowledge and compilation steps like using rake or gcc, which can be challenging for developers accustomed to Ruby's higher-level, interpreter-based workflow.
The mrbgems ecosystem is smaller than RubyGems, reducing the availability of pre-built libraries and increasing development overhead for missing functionality.