2020 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 2020.
mini mruby compiler (mmrbc)
mmrbc (mini mruby compiler) compiles Ruby scripts into VM code of mruby. Typical operating environment is a one-chip microcontroller with 256 KiB ROM and 128 KiB RAM. It’s too small to run mruby-compiler that comes as a standard library with mruby. By combining mmrbc and mruby/c which is another mruby VM implementation for small resource environments, Ruby can run as an interpreter on a one-chip microcontroller.
Possible uses for this system include an IoT device introductory kit that can be developed without a compilation tool chain, facilitating debugging of the actual device when developing a full-scale embedded application, and a setup for school education integrated with Smalruby.
Monstar Lab, inc.
Views support for NumRuby and Ruby-Sparse improvements.
NumRuby is the re-implementation of popular dense matrix library NMatrix. It is re-implemented with the primary focus being performance and scalability. It has shown upto 100x speedup for the fundamental functionalities such as elementwise operations. This project aims at adding Views support to the NumRuby library. Views are used to have multi-dimensional data structures that exchange data without creating copies which saves a lot of memory and execution time.
Sparse matrices are an important part of scientific computing. Ruby-Sparse library is aimed to build an efficient and feature-rich end-user intended Sparse matrix library in Ruby with interfaces to popular dense matrix libraries (like Numo-Narray, NumRuby[NMatrix]) with linear algebra support.
ruby-htslib - High-throughput sequencing data manipulation for Ruby
Ruby-htslib is the Ruby bindings to HTSlib, a C library for processing high throughput sequencing (HTS) data. It will provide APIs to read and write file formats such as SAM/BAM and VCF/BCF.
In recent years, next-generation sequencing (NGS) technologies for reading DNA and RNA sequences have become popular in the life science field. We will provide a way to manipulate the HTS file formats from Ruby. We aim to improve the Ruby ecosystem in genomics.
Happy Eyeballs Version 2 (RFC8305) support for Ruby’s socket library
Ruby’s socket library has an issue with connecting to servers that are not reachable via IPv6. It affects RubyGems and other software written in Ruby. To solve this issue, the socket implementation should fallback from unsuccessful connection attempts. In this project, we implement “Happy Eyeballs Version 2” defined as RFC 8305 that enables fallback IPv6 to IPv4.