Skip to content

Google Summer of Code projects

Beta Ziliani edited this page Feb 21, 2022 · 9 revisions

Crystal Google Summer of Code project ideas

Here we list projects ideas to be work within GSoC.

Potential mentors

Mentors include:

Projects

Completing Windows support

There is ongoing efforts to allow Crystal to work in a native fashion in Windows. From tidying up platform agnostic abstractions, to deal with specific OS API, representation, and setting bases for CI you can help Crystal reach a new land.

The related issue shows the progress made so far.

Possible mentor: @straight-shoota
Required skills: Windows SDK, Crystal or Ruby
Difficulty: Advanced


A New Garbage Collector for Crystal

Currently Crystal uses libgc/bdwgc. While a great collector that works out of the box, we believe a specific collector for Crystal could benefit from the knowledge of the types of objects. Interestingly, this could be done in Crystal itself. @ysbaddaden has a prototype implementation in C of an alternative generic collector for Crystal. Your work will be to first port it to Crystal, and then complete it with different optimizations (some details are in the prototype's page).

Possible mentor: @beta-ziliani
Required skills: C, Crystal or Ruby, basics of garbage collection
Difficulty: Advanced


A framework for getting reliable benchmarks

As the compiler and stdlib evolves it's important to know easily if there were performance improvements (or unimprovements) due to recent changes. The goal would be to build a benchmark framework, the suite of code samples to measure, and reporting output that would allow to depict relevant changes across Crystal versions. You can read more in the associated ticket.

Possible mentor: @straight-shoota or @bcardiff
Required skills: Crystal or Ruby
Difficulty: Medium


Help Crystal reach new places

Crystal can serve many purposes. CLI, Gaming, Web apps, UI, etc. For each scenario sometimes bindings to C libraries are needed, sometimes guides and documentation might be needed (even reporting or solving some issues!). Pick your beloved niche and improve the state of art around it.

Possible mentor: @straight-shoota or @bcardiff
Required skills: Crystal or Ruby
Difficulty: Medium


Formalizing the language

There is no formal document for the semantic of the language. Although there are tons of test in the spec of the compiler to ensure things work as expected, it would be great to have a proper specification of how the language work (or should work). This is not a simple document task. Checking if the compiler comply the specs in one of hidden challenges in this journey.

Possible mentor: @beta-ziliani
Required skills: Programming language semantics
Difficulty: Advanced