Awesome Crystal Save

:gem: A collection of awesome Crystal libraries, tools, frameworks and software

Project README



Awesome Crystal


A curated list of awesome Crystal code and resources. Inspired by awesome and awesome-awesomeness. The goal is to have projects mostly stable and useful for the community.

Search Crystal Shards or follow announcements Crystal [ANN] for more.

Contributions are welcome. Please take a quick look at the contribution guidelines first.

Algorithms and Data structures

  • bisect - Inserting values into a sorted array
  • - BlurHash implementation
  • crie - Compile-time Trie
  • CrOTP - HOTP and TOTP implementation for two factor authentication
  • crystal-linked-list - Implementation of Linked List
  • crystaledge - A pure Vector Math library
  • crystalg - A Generic Algorithm Library
  • crystalline - A collection of containers and algorithms
  • csuuid - A Chronologically Sortable UUID
  • - Collection of edit distance algorithms
  • fzy - A Crystal port of awesome Fzy project fuzzy finder algorithm
  • Goban - A fast and efficient QR Code implementation
  • graphlb - Collection of graph datastructure and algorithms
  • haversine - An Implementation of the Haversine formula
  • kd_tree - An implementation of "K-Dimensional Tree" and "N-Nearest Neighbors"
  • - K-Sortable Globally Unique IDs
  • markov - Build Markov Chains and run Markov Processes
  • - Implementation of a multiset
  • qr-code - QR Code generator
  • radix - Radix Tree implementation
  • s2_cells - S2 Geometry for spatial indexing
  • secure-remote-password - SRP-6a protocol for authentication over an insecure network
  • splay_tree_map - Splay Tree implementation that conforms to the Hash ducktype


  • Axentro - A custom blockchain platform
  • Cocol - A minimal blockchain testbed
  • - Elliptic curve used in the public-private-key cryptography

C bindings


CLI Builders

  • admiral - A robust DSL for writing command line interfaces
  • Athena Console - Allows for the creation of CLI based commands
  • clicr - A simple declarative command line interface builder
  • clim - Slim command line interface builder
  • commander - Command-line interface builder
  • Keimeno - A lightweight text user interface library in Crystal
  • OptionParser - command-line options processing (Crystal stdlib)
  • Phreak - A highly flexible Crystal CLI builder in the style of OptionParser

CLI Utils

  • climate - Tiny tool to make your CLI output 🌈 coloured
  • coin - Command-line application that performs currency conversion via the Fixer API
  • cride - A light CLI text editor/IDE
  • hetzner-k3s - A CLI tool to quickly create and manage Kubernetes clusters in Hetzner Cloud
  • lff - Simple and straightforward large files finder utility in command line
  • meet - Start a jitsi meeting quickly from the comfort of your command line
  • oq - A performant, and portable jq wrapper to facilitate the consumption and output of formats other than JSON; using jq filters to transform the data
  • - A simple and customizable progress bar
  • tablo - A flexible terminal table generator
  • tallboy - Generate ASCII character tables with support for spanning cells over multiple columns

Code Analysis and Metrics

  • ameba - A static code analysis tool
  • - Using multiple ways to find programming language used in files, based on Github's Linguist


  • Crystar - Readers and writers of Tar archive format
  • Gzip - readers and writers of gzip format (Crystal stdlib)
  • — compression of series of coordinates
  • snappy - Snappy compression format reader/writer for Crystal
  • Zip - readers and writers of zip format (Crystal stdlib)
  • Zlib - readers and writers of zlib format (Crystal stdlib)
  • - Bindings for Zstandard compression library


  • cr-dotenv - Loads .env file
  • Envy - Load environment variables from YAML
  • envyable - A simple YAML to ENV config loader
  • habitat - Type safe configuration for your classes and modules
  • totem - Load and parse a configuration in JSON, YAML, dotenv formats


  • - Base62 encoder/decoder, well suited for url-shortening
  • crunits - Tool for converting units of measure (miles to kilometers, celsius to fahrenheit etc)
  • money - Handling money and currency conversion with ease (almost complete port of RubyMoney)
  • - Compile SASS/SCSS to CSS (libsass binding)


  • cmac - Crystal implementation of Cipher-based Message Authentication Code (CMAC)
  • ed25519 - the Ed25519 elliptic curve public-key signature system described in [RFC 8032]
  • - Crystal wrapper for the Monocypher crypto library
  • - Crystal wrapper for the libsodium crypto API

Data Formats

  • BinData - Binary data parser helper with an ASN.1 parser
  • - Easy to use configuration format parser
  • crinder - Class based json renderer
  • Crystalizer - (De)serialize any Crystal object; supporting JSON, YAML, and Byte formats out of the box
  • CSV - parsing and generating for comma-separated values (Crystal stdlib)
  • - Separates a files front matter from its content
  • - GeoIP2 reader
  • HAR - HAR (HTTP Archive) parser
  • INI - INI file parser (Crystal stdlib)
  • JSON - parsing and generating JSON documents (Crystal stdlib)
  • json-schema - convert JSON serializable classes into a JSON Schema representation
  • JSON::OnSteroids - handle and mutate JSON document easily
  • - MaxMindDB reader
  • - TOML parser
  • XML - parsing and generating XML documents (Crystal stdlib)
  • YAML - parsing and generating YAML documents (Crystal stdlib)

Data Generators

  • faker - A library for generating fake data
  • - A library to generate YouTube-like ids from one or many numbers
  • prime - A prime number generator

Database Drivers/Clients

Database Tools

  • migrate - A simpler database migration tool with transactions
  • queryit - A setupless terminal based SQL query runner


  • - Shard aiming to assist with parsing backtraces into a structured form
  • - debug!(…) macro for pp-style debugging

Dependency Injection

  • Athena Dependency Injection - Robust dependency injection service container framework
  • Crystal-DI - Lightweight DI Container
  • HardWire - A compile-time non-intrusive dependency injection system
  • syringe - A simple and basic dependency injection shard for crystal


Environment Management

Examples and funny stuff

Framework Components

  • Athena Event Dispatcher - A Mediator and Observer pattern event library
  • Athena Negotiation - Framework agnostic content negotiation library
  • device_detector - Shard for detect device by user agent string
  • Exception Page - An exceptional exception page for Crystal web libraries and frameworks
  • graphql - Type-safe GraphQL server implementation
  • graphql-crystal - GraphQL implementation
  • kemal-session - Session handler for Kemal
  • mochi - Authentication shard inspired by Devise supporting: Authenticable, Confirmable, Invitable & more
  • - Object oriented frontend library for Amber
  • multi-auth - Standardized multi-provider OAuth2 authentication (inspired by omniauth)
  • praetorian - Minimalist authorization library inspired by Pundit
  • Shield - Comprehensive security for Lucky framework
  • - File Attachment toolkit for Crystal applications. Heavily inspired by Shrine for Ruby
  • tourmaline - Telegram bot framework with an API loosely based on telegraf.js

Game Development

GUI Development

HTML Builders

  • - Dead simple HTML form builder for Crystal with built-in support for many popular UI libraries such as Bootstrap

HTML/XML Parsing


Image processing

  • celestine - Create SVG images using a DSL
  • ffmpeg - FFmpeg bindings that works with StumpyPNG to extract frames
  • stumpy_png - Read and write PNG images


  • charly - Charly Programming Language
  • cltk - A crystal port of the Ruby Language Toolkit
  • crisp - Lisp dialect implemented with Crystal
  • LinCAS-lang - A programming language for scientific computation
  • mint-lang - A refreshing programming language for the front-end web
  • myst-lang - A practical, dynamic language designed to be written and understood as easily and efficiently as possible
  • runic-lang - In-design toy language


  • crystal-i18n - An internationalization library inspired by Ruby-I18n
  • - Internationalization shard
  • Lens - A multiformat internationalization (i18n) shard for Crystal. Supports Gettext, Ruby YAML, etc.
  • Rosetta - A blazing fast internationalization (i18n) library with compile-time key lookup supporting YAML and JSON formats

Logging and monitoring

Machine Learning

Markdown/Text Processors

  • markd - Yet another markdown parser built for speed, Compliant to CommonMark specification


  • - Easy to use finite state machine for Crystal classes
  • - Recursive Hash with better JSON::Any included
  • anyolite - Full mruby interpreter with simple bindings, allowing for easy scripting support in projects
  • - the dependecyless shard to validate, generate and format Brazilian burocracias such as CPF, CNPJ and CEP
  • callbacks - Expressive callbacks module
  • circuit_breaker - Implementation of the circuit breaker pattern
  • CrSignals - Signals/slots notification library
  • crystal-binary_parser - Binary parser
  • crystal-web-framework-stars - Web frameworks for Crystal, most starred on Github
  • crz - Functional programming library
  • defined - macros for conditional compilation based on constant definitions, version requirements, or environment variable settings
  • - Emoji library
  • - Web API for libgphoto2
  • immutable - Implementation of thread-safe, persistent, immutable collections
  • iterm2 - Display images within the terminal using the ITerm2 Inline Images Protocol
  • monads - Monad implementation
  • pinger - Ping IP addresses and DNS entries without requiring sudo
  • port_midi - Crystal C bindings for the PortMIDI cross-platform MIDI I/O library
  • - Simple DSL to retry failed code blocks
  • - Framework for building Serf handlers, with a suite of useful builtin capabilities
  • simple_retry - Simple tool for retrying failed code blocks
  • - Crystal shard wrapping the rbsec/sslscan utility
  • version_tools - Version-dependent behaviour, specified at compile-time
  • wafalyzer - Web Application Firewall (WAF) Detector - shard + cli
  • zaru_crystal - Filename sanitization

Network Protocols


ORM/ODM Extensions

  • avram - A database wrapper for reading, writing, and migrating Postgres databases
  • clear - ORM specialized to PostgreSQL only but with advanced features
  • crecto - Database wrapper, based on Ecto
  • granite - ORM for Postgres, Mysql, Sqlite
  • - Active Record pattern implementation with flexible query chainable builder and migration system
  • rethinkdb-orm - ORM for RethinkDB / RebirthDB

Package Management

  • shards - Dependency manager for the Crystal

Processes and Threads

  • await_async - Add keywords await & async in Crystal Lang
  • - Simplified concurrency using streams/pipelines, waitgroups, semaphores, smores and more
  • neph - A modern command line job processor that can execute jobs concurrently
  • promise - A Promise implementation with type inference
  • werk - Dead simple task runner with concurrent support, ideal for local CI

Project Generators

  • crystal_lib - Automatic binding generator for native libraries
  • fez - A Kemal application generator
  • libgen - Automatic bindings generator configured using JSON/YAML files

Queues and Messaging

  • mosquito - Redis backed periodic and ad hoc job processing
  • - NATS client
  • - Simple, efficient job processing


  • orion - A minimal, rails-esque routing library
  • - Minimum but powerful http router for HTTP::Server


  • crystime - Advanced time, calendar, schedule, and remind library
  • - Run periodic tasks
  • tasker - A high precision scheduler including timezone aware cron jobs

Science and Data analysis

  • alea - Repeatable sampling, CDF and other utilities to work with probability distributions
  • ishi - Graph plotting package with a small API and sensible defaults powered by gnuplot
  • linalg - Linear algebra library inspired by MATLAB and SciPy.linalg
  • - Numerical computing library supporting N-Dimensional data
  • - Satellite prediction library using the sgp4 model
  • quartz - Modeling and simulation framework
  • hermes - Data Mapper pattern implementation for ElastiSearch
  • soegen - Elasticsearch client for Crystal similar to the stretcher gem for ruby

Serverless Computing

  • crystal_openfaas - Template to enable crystal as first class citizens in OpenFaaS
  • FaaStRuby - Serverless Software Development Platform for Ruby and Crystal
  • secrets-env - Extends ENV module to read values injected by docker / kubernetes secrets and other orchestration tools


  • baked_file_system - Virtual file system implementation
  • hardware - Get CPU, Memory and Network informations of the running OS and its processes

Task management

  • cake - Production-ready Make-like utility tool
  • sam - Another one Rake-like task manager with namespacing and arguments system

Template Engine

  • crinja - An implementation of the Jinja2 template engine
  • crustache - {{Mustache}} for Crystal
  • ECR (Embedded Crystal) - compile time template language which uses plain crystal expressions (Crystal stdlib)
  • Jbuilder - Generate JSON objects with a Builder-style DSL, inspired by jbuilder
  • Kilt - Abstraction layer for template engines
  • Slang - Lightweight, terse, templating language inspired by Ruby's Slim
  • teeplate - A library for rendering multiple template files
  • Water - A library for writing HTML in plain Crystal


  • Athena Spec - Common/helpful Spec compliant testing utilities
  • crotest - A tiny and simple test framework
  • crytic - Mutation testing framework
  • LuckyFlow - Automated browser tests similar to Capybara
  • mass-spec - Web API testing library
  • microtest - Small opinionated testing library focusing on power asserts
  • - Library for unit tests and assertions
  • - Mocking library for Crystal
  • Spec - spec framework (Crystal stdlib)
  • spectator - Feature rich spec framework that uses the modern expect syntax
  • - Library for mocking with Inspired by the timecop ruby gem
  • vcr - A HTTP capture and replay implementation for crystal
  • webdriver_pump - Page Object library. Inspired by Ruby's WatirPump
  • - Library for stubbing HTTP::Client requests

Third-party APIs


Web Frameworks

  • amber - Open source efficient and cohesive web application framework
  • Athena - A web framework comprised of reusable, independent components
  • grip - The microframework for writing powerful web applications
  • kemal - Lightning Fast, Super Simple web framework. Inspired by Sinatra
  • lucky - Catch bugs early, forget about most performance issues, and spend more time on code instead of debugging and writing tests
  • marten - A web framework that makes building web applications easy, productive, and fun
  • runcobo - An api framework with simple, intuitive and consistent DSL, using jbuilder to render json
  • Shivneri - Component based MVC web framework for crystal targeting good code structures, modularity & performance
  • spider-gazelle - A Rails esque web framework with a focus on speed and extensibility




Official Documentation Translations

Services and Apps

  • - A web service that runs your code and displays the result
  • Crank - A Procfile-based application manager (like Foreman)
  • cry - Ability to execute crystal code in a fashion similar to Ruby's pry edit
  • Crystal [ANN] - Announce new project, blog post, version update or any other Crystal work
  •, - Web services that list all available Crystal shards
  • Crystular - Regular expression tester
  • DeBot - IRC bot written in Crystal
  • icr - Interactive console for Crystal (like IRB for Ruby)
  • Invidious - Invidious is an alternative front-end to YouTube
  • mpngin - A URL shortener with simple stats
  • quicktype - Generate models and serializers from JSON, JSON Schema, GraphQL, and TypeScript
  • - Web service that lists all repositories on GitHub that have Crystal code in them. The sources are available on GitHub



  • ansible-crystal - Ansible playbook for installing crystal
  • DPPM - An easy, universal way to install and manage applications as packages (mostly Linux)

Editor Plugins

LSP Language Server Protocol Implementations

  • crystalline - Crystalline is an implementation of the Language Server Protocol written in and for the Crystal Language
  • scry - Code analysis server for Crystal implementing the Language Server Protocol

Shell plugins

  • crun - Crystal Run : shebang wrapper for Crystal
  • crystal-zsh - .oh-my-zsh plugin
Open Source Agenda is not affiliated with "Awesome Crystal" Project. README Source: veelenga/awesome-crystal
Open Issues
Last Commit
2 weeks ago

Open Source Agenda Badge

Open Source Agenda Rating