Want to learn and master Crystal?

Join Exercism’s Crystal Track for access to 125 exercises grouped into 21 Crystal Concepts, with automatic analysis of your code and personal mentoring, all 100% free.

Explore concepts

About Crystal

class HelloWorld
  def self.hello(name = "World")
    "Hello, #{name}!"
  end
end

Key Features of Crystal


Crystal

Simple Syntax

Crystal's syntax is heavily inspired by Ruby, so it is natural to read and easy to write.

Static Type Checking

Crystal is statically type checked with built-in type inference, so type errors are caught early.

Null Reference Checks

All types are non-nilable in Crystal, so the compiler checks for null references at compile time.

Concurrency Model

Crystal has built in concurrency primitives, called fibers, to achieve concurrency.

C-Interopability

Crystal has dedicated syntax to easily call native libraries, increasing code re-use.

Macros

Crystal's answer to metaprogramming is a powerful macro system.

A taste of the concepts you'll cover


See all the concepts for Crystal

Get mentored the Crystal way

Every language has its own way of doing things. Crystal is no different. Our mentors will help you learn to think like a Crystal developer and how to write idiomatic code in Crystal. Once you've solved an exercise, submit it to our volunteer team, and they'll give you hints, ideas, and feedback on how to make it feel more like what you'd normally see in Crystal - they'll help you discover the things you don't know that you don't know.

Learn more about mentoring

Community-sourced Crystal exercises

The Crystal track on Exercism has 21 concepts and 125 exercises to help you write better code. Discover new exercises as you progress and get engrossed in learning new concepts and improving the way you currently write.

See all Crystal exercises
Crystal

Get started with the Crystal track

The best part, it’s 100% free for everyone.