2023 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 2023.
Namespace on read
This project is to develop a patch of Ruby language to introduce virtual top-level namespaces, which provide a feature to require/load libraries into a separate namespace.
Libraries in the namespace will be separated/isolated from the global namespace so that namespaces can solve problems about name conflicts between libraries, unexpected modification of globally shared module/class instances, and in the future, library version conflicts between application’s dependencies.
Satoshi Tagomori (tagomoris)
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
Ruby’s socket library has methods that return a client socket connected to a remote server.
Currently, these have the following two issues:
(1) For address resolution, they query DNS servers synchronously for each address family. It causes the program to stop until all addresses have been resolved.
(2) While the IP address is trying to connect to the destination host and is taking time, the program stops, and other resolved IP addresses cannot try to connect.
RFC8305 specifies Happy Eyeballs Version 2 algorithm to solve them and ensure better connectivity. For solving (1), the client sends DNS queries asynchronously for each address family. And for (2), connections will attempt sequentially using resolved IP addresses.
This project aims to solve the above issues by introducing Happy Eyeballs Version 2 to Ruby’s socket library.
Enhancing performance profiling for Ruby
This project aims to develop a new performance profiler for Ruby.
Profiling is crucial for writing efficient programs, and the profiler plays a significant role in achieving this.
To support practical analysis, our profiler will have improved visualization and will aim to provide more detailed information through integration with the target program and the Ruby interpreter itself.
Additionally, we will also share insights about the implementation of profilers and work on enhancing existing profilers.
Daisuke Aritomo (osyoyu)
Ruby Playground for CRuby Developer
In programming language development, running an experimental language implementation is a common way to discuss language features. Especially for new syntax or method proposals, it would give some insights like edge cases. On the other hand, to run an experimental implementation, we need to make a build with the proposed changes applied and it’s not easy. This project aims to encourage discussion in Ruby development by providing a handy playground for Ruby developers.
Processing Gem for CRuby, working towards better compatibility with the original Processing
Frameworks such as Processing and p5.js are widely used in the creative coding world.
By using them, you can easily create art and interactive applications that make full use of graphics and visual expression.
This project is developing a Processing Gem for CRuby compatible with the Processing/p5.js API from scratch, and currently has about 70-80% of the main Processing features implemented.
This effort will develop the remaining unimplemented features and help Ruby programmers to use the widely known Processing API for graphics programming.