Files
mruby-mruby/doc
HASUMI Hitoshi 5e9eed2d0c Fix KHASH_DEFAULT_SIZE to KHASH_INITIAL_SIZE rename inconsistencies
Commit 250bf6edd renamed KHASH_DEFAULT_SIZE to KHASH_INITIAL_SIZE but
missed updating build_config files and documentation. Also restore the
default value in khash.h to 32, consistent with the documented default
and the profile hierarchy (MRB_CONSTRAINED_BASELINE_PROFILE reduces it
to 16).
2026-03-19 09:38:36 +09:00
..
2024-09-24 00:14:24 +10:00
2025-07-25 16:10:03 +09:00
2025-05-14 02:01:02 +10:00

mruby Documentation

Getting Started

New to mruby? Start here:

Document Description
Getting Started Build mruby and run your first program
Language Features Ruby subset supported by mruby
Limitations Behavioral differences from CRuby

Guides (for embedders and gem authors)

Embedding mruby in C

Document Description
C API Reference Values, classes, methods, error handling, fibers
GC Arena Managing temporary objects in C extensions
Linking Linking with libmruby
Amalgamation Single-file build for easy integration
Precompiled Symbols Compile-time symbol allocation

Building and Configuring

Document Description
Compilation Build system, cross-compilation, toolchains
Build Configuration Compile-time macros (MRB_* flags)
mrbgems Creating and managing gems
Memory Allocator customization and heap regions

Tools

Document Description
Debugger Using mrdb for debugging
ROM Method Tables Read-only method tables for constrained devices

Reference

Document Description
Directory Structure Source tree layout

Internals (for mruby contributors)

Start with Architecture for an overview, then dive into the subsystem you need:

Document Description
Architecture Overview of object model, VM, GC, compiler
Virtual Machine Dispatch loop, call frames, method lookup, fibers
Garbage Collector Tri-color marking, write barriers, generational GC
Compiler Pipeline Parser, code generator, IRep, binary format
Opcodes VM instruction set reference
Value Boxing How mrb_value encodes types

Release Notes