2026年度Rubyアソシエーション開発助成 公募結果

Rubyアソシエーション開発助成について2026年度は以下のプロジェクトが採択されましたのでご報告致します。
本プロジェクトによる開発の成果報告は2027年4月頃に予定しています。

General-Purpose Macro-like Code Generation for Ruby

プロジェクト概要

A common Ruby metaprogramming technique consists of evaluating dynamically generated strings that contain Ruby source code. Generating those bits of Ruby source code is often complex, error-prone and vulnerable to code injection. This project aims to provide an alternative to this technique by introducing a flexible quote/unquote macro mechanism to Ruby, inspired by the macro facilities of languages such as Lisp and Elixir, along with additional tools for dynamically creating and manipulating Ruby ASTs using a convenient DSL. Ultimately, this project will explore the possible usage of these new tools in popular gems such as ERB, ActiveRecord, Roda etc, as well as their possible integration into the Ruby runtime.

応募者名

Sharon Rosner

cjk_index — pure-Ruby full-text search for Chinese, Japanese and Korean

プロジェクト概要

cjk_index は、中国語・日本語・韓国語(CJK)のテキストを全文検索するための Ruby のライブラリで、ネイティブ拡張を必要としません。これらの言語は単語の間に空白を入れないため、空白で区切る方式では文中の語を見つけられません。lunr.js を英語の既定設定のまま使う Jekyll のサイトでは、CJK の文字で検索すると結果が出ません。cjk_index は CJK のテキストを、隣り合う2文字の組で索引し、カタカナとひらがな、旧字と新字といった、よく見られる文字の揺れを同じものとして扱います。同じ索引を、Ruby からもブラウザからも検索できます。本プロジェクトでは、絞り込みと索引の差分更新、異体字の対応表の拡充、より大きなコレクションに向けた索引の分割を加えます。また、既にある Jekyll 用のプラグインに加えて、Bridgetown 用のアダプタとコマンドラインの道具を作り、Rails での使用例も示します。

応募者名

Satoru Nakamura

mruby の GPU 計算ライブラリの拡充

プロジェクト概要

mruby には、NumPy や CuPy に当たる配列計算のライブラリがなかった。CuPy 自体も CUDA か ROCm が前提で、Raspberry Pi や多くの mini PC の統合 GPU では使えない。そこで、Vulkan Compute を使って GPU で計算する Numo 風の配列 mruby-gpu-narray と、Ruby のブロックを GPU カーネルに変換する mruby-gpu-kernel を開発してきた。ただし現在は、どちらも 1 次元の float32 に限られる。
本プロジェクトでは、NumPy / CuPy に既にある機能を mruby で使えるように整備する。2・3 次元の配列と多次元の FFT、整数型、軸方向の集約、cupy.fuse に当たる GPU.fuse を追加し、gem 作者向けの土台(mruby-gpu-runtime、プロファイラを含む)、画像処理とカメラ入力の gem を作る。これにより、センサーの近くに置く Raspberry Pi、mini PC、NVIDIA Jetson などで、CUDA に縛られずに GPU 計算の PoC を mruby で書けるようにし、他の開発者も GPU を使う mrbgem を作れる下地を整える。

応募者名

手島裕司

RubyのUTF-8文字列に対するcoderange判定の高速化

プロジェクト概要

本プロジェクトでは、String#valid_encoding? などで使われる、UTF-8文字列の妥当性を検証する内部処理(coderange判定)を高速化します。UTF-8に特化した処理やSIMD命令を活用し、文字列の検証にかかるCPU時間の削減を目指します。短いASCII文字列への性能上の悪影響を抑えながら、ARM64・x86_64環境で性能と互換性を検証し、実利用に近いワークロードへの効果も評価したうえで、Ruby本体への改善パッチを提案します。

応募者名

Mari Imaizumi

rbs-inlineエコシステムと親和性の高い開発支援ツールの開発

プロジェクト概要

Rubyの型エコシステムは発展を続けている一方で、型定義を管理する負担やメタプログラミングとの相性、チームの学習コストといった運用上の壁から、普及に至っていない状況にあります。本プロジェクトでは、漸進的型付けに基づく型推論によって、最小限の型シグネチャで健全性を高めることを目指す静的解析ツール「Rigor」の開発に取り組みます。Rigorは、すでに動いているRubyコードに対して過剰な警告を避けながら型推論を行い、プラグインやAIエージェントと協調するように設計されています。あわせて、YARDから移行できるドキュメンテーションツール「Zard」を開発し、RBSおよびrbs-inlineと整合性を保ちながら、人間とAIエージェントが協調してRubyを書くための土台づくりを目指します。

応募者名

宇佐美健太