PicoRuby is an alternative mruby implementation which is:
- Small foot print
- ROM: 256 KB (depending on build config)
- RAM: 128 KB or less (depending on app code)
- (Figures in 32 bit architecture)
- Portable
- Depends on only standard C library such as glibc, Newlib or Newlib-nano
- Reference microcontroller boards
- Raspberry Pi Pico - Arm Cortex-M0+, 264 KB RAM, 2 MB Flash
- mruby/c (mrubyc/mrubyc): Another implementation of mruby virtual machine
-
PRK Firmware: Keyboard firmware for Raspberry Pi Pico
-
picoruby.wasm: PicoRuby WASI runtime for WebAssembly
- Prerequisites
- C toolchain
- git
- ruby (should be CRuby 3.0+)
git clone --recursive https://github.com/picoruby/picoruby
cd picoruby/
rake
# PICORUBY_DEBUG=1 rake # for debug build
# PICORUBY_DEBUG=1 PICORUBY_NO_LIBC_ALLOC=1 rake # for debug build using mruby/c's memory allocator
bin/picoruby -e 'puts "Hello World!"'
See an example: build_config/r2p2-cortex-m0plus.rb
rake
command will make three kinds of executable binary
- bin/picorbc
bin/picorbc path/to/source.rb
makespath/to/source.mrb
that is VM code runs on an mruby-compatible virtual machine
- bin/picoruby
bin/picoruby source.rb
executes Ruby just like normalruby
command- You can do like
bin/picoruby path/to/your_script.rb
to run your script
- bin/r2p2
- POSIX version of R2P2 (https://github.com/picoruby/R2P2)
PicoRuby is still developing halfway towards finishing as of 2024.
See implementation roadmap on issue/6
Fork, patch, then send a pull request.
Part of this project was coded by Monstarlab with the support of the Ruby Association Grant Program 2020 and 2021.
See also picoruby/picoruby/wiki.
Copyright © 2020-2024 HASUMI Hitoshi. See MIT-LICENSE for further details.
Copyright © 2020-2021 Monstarlab. See MIT-LICENSE for further details.