Back to Programs

Programming languages

Ruby

Ruby is an object-oriented programming language

bundlerrubyruby on railsrubygemscjava

Participation history

8 GSoC years

2026

5 projects

Official year page

Eliminating Shim Methods via Method Rewriting in LowType

LowType currently relies on shim methods to bypass type checking when disabled, adding persistent runtime overhead on every method call through...

Event Transparency Logs

RubyGems.org currently lacks transparency into critical package registry events such as gem publications, ownership changes, and deletions, making it...

Ruby Vulnerability Warnings on RubyGems

Developers using Ruby gems have no official way to know when a gem they depend on has a known security vulnerability. This project integrates...

HTTP Streaming

This project addresses the absence of HTTP streaming support in the Rage framework, where responses are currently fully buffered before being sent to...

Bring Scarpe (shoes) to the TUI

Building modern Text User Interfaces (TUIs) often forces developers to choose between writing complex, low-level terminal sequence code or adopting...

2023

4 projects

Official year page

Scarpe on WASM

The project primary objective would be bypassing the current usage of the webview library in Scarpe, feeding directly the HTML and Javascript code to...

Reducing Garbage Collection Cost with Fibers in Ruby

Ruby uses garbage collection (GC) to automatically reclaim memory that was allocated by a program, but no longer used. Consequently, users do not...

Hash Maps That Don’t Hate You: A Proposal For Fast, Insertion-Ordered Hash Maps in Truffleruby

The project this document proposes is that of implementing the hash map structure described in high level detail in the article Hash Maps That Don’t...

Scarpe

Scarpe is a project designed to resurrect the shoes library using modern technology. This project aims to leverage an HTML/CSS/JS/RUBY stack to...

2022

3 projects

Official year page

Optimizing Garbage Collection for Ruby Ractors

Ruby 3 introduced Ractors, which allow true concurrency in the language. However, Ruby's stop-the-world Garbage Collector (GC) pauses all of the...

RDoc generation from RBS

Documentation refers to the additional text associated with a codebase to help developers and/or clients/users understand the code/use cases better....

Implementing Ruby 3.0 Pattern Matching in TruffleRuby

This project aims to improve feature parity between TruffleRuby and CRuby in places where full Ruby 3.0 feature parity has not been achieved, aiming...

2021

5 projects

Official year page

Writing of RBS Files

Writing of RBS Files Ruby is an extremely easy to use, syntactically elegant, dynamically typed language. Ruby announced the release of RBS, a...

Language Server for RBS

Implement Language Server for RBS

Ractor-supported libraries

Ractor is a feature introduced in Ruby 3 that allows parallel execution. However, many Ruby libraries are currently not compatible with Ractor. This...

Optimize Kernel::require API for Ruby 3

The most frequently used Ruby Core APIs Kernel::require and Kernel::require_relative are doing the same work: it’s to resolve the file path, read the...

Tests for debugger

GSoC 2021 Proposal: Tests for debugger Overview debug.rb is a replacement of the traditional lib/debug.rb standard library which is implemented by...

2020

4 projects

Official year page

GSOC 2020 Proposal for GemStash

Gemstash has long been serving as a private gem source for developers who wanted to inhabit a personal environment to update and develop their gems....

Brush up RBS and related tools for practical Rails apps

RBS, a type annotation language and tool for Ruby, is about to be bundled with Ruby 3.0. Gradual typing with RBS allows Rubyists to enjoy the...

Add gem owner add and remove in web UI of rubygems.org

gem owner -a/r command is used to add or remove owners by an email. We will add options for adding/removing gem owners via Web UI. Additionally, we...

Allowing Type Checking in Method Signatures

Allows Rubyists to enforce a type into a parameter without any DSLs

2019

5 projects

Official year page

Recursive tree view for gem dependencies

This project would add a feature on the rubygems.org website to give an option on each gem web page to show a tree/DAG of all transitive dependencies...

A Rails 6 package transition in Debian

Upgrade the Rails to 6.0.0 and patch all 169 Debian packages that depend on the Rails to be compatible with Rails 6.0.0. Rails (Ruby on Rails) is one...

Integrate functionality from gem-web into RubyGems gem CLI

Gem-web is a tool that capable of providing an interface that allows opening documentation, source code and website of a ruby gem. Integrating it on...

Adding Autocomplete Function in RubyGems.org Search UI

In RubyGems.org website, we can search for any kinds of gems you want. However, most programmers use google or any other websites to look for gems...

Bundler and gem metrics, statistics and analytics

Bundler includes some basic information in the User-Agent header during HTTP requests to gem servers, but this information is insufficient and...

2018

5 projects

Official year page

Adding Type Annotations to Ruby Syntax

I would like to add type annotations to Ruby, per the ideas list. These annotations will serve as documentation and hopefully a way to implement...

Apply for the project of Ruby huge memory machine

Currently, several problems are known when Ruby program runs under a high memory workload, including slow rates for allocating memory and program...

Integrate functionality from bun

Having gone through bun and playing around with it, I found it to be a great tool for quick editing of Gemfiles. I would be integrating it into...

Add security vulnerability notifications in rubygems

This proposes the feature to generate security vulnerability notifications by gem authors for a specific gem version which have security issues....

Add multi-factor authentication to Rubygems.

Currently gem command line tool and rubygems.org does not support any OTP authentication other than original email and password. This project tries...

2016

12 projects

Official year page

Java ByteBuffer Support for Nio4r

Ruby has no native ByteArray or ByteBuffer types, unlike Java. While it'd be great to have something like this in core Ruby, the next best place...

Maintain Bundler: a very popular and widely-used open source project

I will help with current contributors of bundler to help maintain the bundler projects and other related project under bundler. As a maintainer, my...

Optional types for Matz's Ruby Interpreter

Dynamic languages trade some of the compile-time safety properties of statically typed languages for greater flexibility for a programmer to write...

Move the Bundler API back into RubyGems.org

My project would re-implement the Bundler API on the Rails app that provides RubyGems.org. Bundler uses bundler-api to download dependency...

Implement UJS using native JavaScript

The goal of this project is to Rewrite UJS using native JavaScript, i.e., without jQuery. Add new features to UJS. Currently I have planned...

Cap'n Proto RPC implementation by wrapping c++

Cap'n Proto RPC implementation Project idea There is already a decent binding of Cap'n Proto in github but it doesn't have RPC. My project consist...

Rails: Support Auto-Completion in Web Console

Web Console is a debugging tool for the web apps built with Ruby on Rails. In order to debug, it provides an interactive Ruby session to the...

Rebuild bundler.io, the Bundler website

Rebuild old, middleman based http://bundler.io website and make it more automated

Maintain Bundler: a very popular and widely-used open source project

As mentioned in the listing for Bundler-related ideas, "Once an open source project has taken off and become popular and widely used, writing code...

Plugin system

This is to develop a plugin system for bundler which can be used to add features like CLI commands, new sources for ruby gems and hooks for lifecycle...

Breaking changes for the 2.0 release

Everything that worked with Bundler 1.0 still works with Bundler 1.11, all new features from 1.0 to 1.11 have been incremental additions, without...

Automatic-selection mechanism for data structures in MRI

I will consider and conduct a survey about the data structures appropriate to the operations used in Ruby, and combine their merits by dynamically...