{"id":13513456,"url":"https://github.com/picoruby/picoruby","last_synced_at":"2025-05-14T22:07:27.065Z","repository":{"id":40455556,"uuid":"234741660","full_name":"picoruby/picoruby","owner":"picoruby","description":"PicoRuby is the smallest Ruby implementation for one-chip microcontrollers","archived":false,"fork":false,"pushed_at":"2025-04-30T10:09:45.000Z","size":7972,"stargazers_count":809,"open_issues_count":9,"forks_count":40,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-30T11:42:35.146Z","etag":null,"topics":["microcontroller","mruby","mrubyc","ruby"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/picoruby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-01-18T13:50:52.000Z","updated_at":"2025-04-30T10:09:49.000Z","dependencies_parsed_at":"2023-12-06T02:54:21.889Z","dependency_job_id":"3856a465-cd42-4256-bc4c-86730a344999","html_url":"https://github.com/picoruby/picoruby","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picoruby%2Fpicoruby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picoruby%2Fpicoruby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picoruby%2Fpicoruby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picoruby%2Fpicoruby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/picoruby","download_url":"https://codeload.github.com/picoruby/picoruby/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235696,"owners_count":22036963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["microcontroller","mruby","mrubyc","ruby"],"created_at":"2024-08-01T05:00:26.247Z","updated_at":"2025-05-14T22:07:22.048Z","avatar_url":"https://github.com/picoruby.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"[![C/C++ CI](https://github.com/picoruby/picoruby/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/picoruby/picoruby/actions/workflows/c-cpp.yml)\n\n## PicoRuby\n\nPicoRuby is an alternative mruby implementation which is:\n\n- Small foot print\n  - ROM: 256 KB (depending on build config)\n  - RAM: 128 KB or less (depending on app code)\n  - (Figures in 32 bit architecture)\n- Portable\n  - Depends on only standard C library such as glibc, Newlib or Newlib-nano\n- Reference microcontroller boards\n  - Raspberry Pi Pico - Arm Cortex-M0+, 264 KB RAM, 2 MB Flash\n\n### API documentation with some demo videos\n\n[https://picoruby.github.io/](https://picoruby.github.io/)\n\n\u003cimg src=\"docs/logos/fukuokarubyaward.png\" width=\"212\"\u003e\n\n### Depends on\n\n- [mruby/c (mrubyc/mrubyc)](https://github.com/mrubyc/mrubyc): Another implementation of mruby virtual machine\n\n### Used by\n\n- [PRK Firmware](https://github.com/picoruby/prk_firmware): Keyboard firmware for Raspberry Pi Pico\n\n- [picoruby.wasm](https://www.npmjs.com/package/@picoruby/wasm-wasi): PicoRuby WASI runtime for WebAssembly\n\n### Build\n\n- Prerequisites\n  - C toolchain\n  - git\n  - ruby (should be CRuby 3.0+)\n\n```console\ngit clone --recursive https://github.com/picoruby/picoruby\ncd picoruby/\nrake\n# PICORUBY_DEBUG=1 rake                         # for debug build\n# PICORUBY_DEBUG=1 PICORUBY_NO_LIBC_ALLOC=1 rake  # for debug build using mruby/c's memory allocator\nbin/picoruby -e 'puts \"Hello World!\"'\n```\n\n#### Cross compilation\n\nSee an example: [build_config/r2p2-cortex-m0plus.rb](https://github.com/picoruby/picoruby/blob/master/build_config/r2p2-cortex-m0plus.rb)\n\n### Binaries\n\n`rake` command will make three kinds of executable binary\n\n- bin/picorbc\n  - `bin/picorbc path/to/source.rb` makes `path/to/source.mrb` that is VM code runs on an mruby-compatible virtual machine\n- bin/picoruby\n  - `bin/picoruby source.rb` executes Ruby just like normal `ruby` command\n  - You can do like `bin/picoruby path/to/your_script.rb` to run your script\n- bin/r2p2\n  - POSIX version of R2P2 (https://github.com/picoruby/R2P2)\n\n### Roadmap\n\nPicoRuby is still developing halfway towards finishing as of 2024.\n\nSee implementation roadmap on [issue/6](https://github.com/picoruby/picoruby/issues/6)\n\n### Contributing to PicoRuby\n\nFork, patch, then send a pull request.\n\n### Acknowledgement\n\nPart of this project was coded by [Monstarlab](https://monstar-lab.com/) with the support of\nthe Ruby Association Grant Program\n[2020](https://www.ruby.or.jp/en/news/20201022)\nand\n[2021](https://www.ruby.or.jp/en/news/20211025).\n\nSee also [picoruby/picoruby/wiki](https://github.com/picoruby/picoruby/wiki).\n\n### Stargazers over time\n[![Stargazers over time](https://starchart.cc/picoruby/picoruby.svg?variant=adaptive)](https://starchart.cc/picoruby/picoruby)\n\n### License\n\nCopyright © 2020-2024 HASUMI Hitoshi. See MIT-LICENSE for further details.\n\nCopyright © 2020-2021 Monstarlab. See MIT-LICENSE for further details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicoruby%2Fpicoruby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpicoruby%2Fpicoruby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicoruby%2Fpicoruby/lists"}