2025 Ruby Association Grant selection result

We are very happy to announce that the following four projects have been selected by the Ruby Association grant committee.
Accomplishments of the projects will be published around April 2026

Pure Ruby Apache Arrow implementation

Project Summary

Apache Arrow is a standardized data format designed for exchanging large in-memory table data with low cost and processing large in-memory table data efficiently. Many modern data-processing tools adopt Apache Arrow as one of their core components. It increases interoperability among them. In Ruby, there are libraries that support Apache Arrow such as Red Arrow and Ruby Polars. They are implemented as C++/Rust bindings. They are fast and feature-rich but installation is more difficult than pure Ruby libraries.
This project implements a pure Ruby Apache Arrow serializer/deserializer library. It focus on only low cost large in-memory table data exchange. By implementing it in pure Ruby, we aim to make it easier to use Apache Arrow in Ruby and to lay the groundwork for a growing ecosystem of Ruby data processing libraries.

Applicant Name

ClearCode Inc.

UringMachine - bringing low-level I/O with io_uring to Ruby

Project Summary

Io_uring is a relatively new Linux API, permitting the invocation of Linux system calls asynchronously. UringMachine is a gem that brings low-level access to the io_uring interface to Ruby programs, and permits not only asynchronous I/O on files and sockets, but also timeouts, futex wait/wake, statx etc, with support for fiber-based concurrency. This project will work to enhance UringMachine to include a FiberScheduler implementation for usage with the standard Ruby I/O classes, to have builtin support for SSL, to support more io_uring ops such as writev, splice, fsync, mkdir, fadvise, etc.

Applicant Name

Sharon Rosner

Development of Lightweight Type Information LSP

Project Summary

This project is to develop an LSP server that provides useful type information without compromising Ruby’s flexibility. By leveraging heuristic type inference (such as estimating types from called method lists and variable name patterns) instead of precise type inference, and without requiring explicit type declarations, it aims to create a development experience that performs smoothly even in large-scale applications and provides practical type information for everyday development.

Applicant Name

SIM SANGYONG

Optimizing CRuby with Prior Shape Construction and Method Specialization

Project Summary

In the paper Integrating Static Optimization and Dynamic Nature in JavaScript, the applicant and others proposed a technique involving shapes (hidden classes) and optimization. This technique is expected to be applicable not only to JavaScript but also to other dynamic object-oriented languages.
This project will explore its feasibility in CRuby, evaluate its impact while aiming to improve performance. It will also investigate and improve related implementations as necessary.

Applicant Name

Tadashi Saito

TutorialKit.rb

Project Summary

TutorialKit.rb is a framework for building interactive, browser-based tutorials for the Ruby ecosystem. It lets developers create hands-on environments where users can experiment with Ruby gems and frameworks like Rails directly in the browser - no local setup required. The environment runs via WebAssembly and provides a full Ruby development setup with an editor, terminal, and configurable gem dependencies, making Ruby education, documentation, and onboarding more accessible and reproducible.

Applicant Name

Evil Martians