← Back to Awesome

Sections

Crystal

GitHub repository ↗ synced 2026/8/9

SWUbanner

Awesome Crystal

Awesome

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 shards at shards.info for more.

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

  • Awesome Crystal
    • Algorithms and Data structures
    • Blockchain
    • C Bindings
    • Caching
    • CLI Builders
    • CLI Utils
    • Code Analysis and Metrics
    • Compression
    • Configuration
    • Converters
    • Cryptography
    • Data Formats
    • Data Generators
    • Database Drivers/Clients
    • Database Tools
    • Debugging
    • Dependency Injection
    • Email
    • Environment Management
    • Examples and funny stuff
    • Framework Components
    • Game Development
    • GUI Development
    • HTML Builders
    • HTML/XML parsing
    • HTTP
    • Image Processing
    • Implementations/Compilers
    • Internationalization
    • Logging and monitoring
    • Machine Learning
    • Markdown/Text Processors
    • Misc
    • Network Protocols
    • Networking
    • ORM/ODM Extensions
    • Package Management
    • Processes and Threads
    • Project Generators
    • Queues and Messaging
    • Routing
    • Scheduling
    • Science and Data analysis
    • Search
    • Security
    • Serverless Computing
    • System
    • Task management
    • Template Engine
    • Testing
    • Third-party APIs
    • TUI
    • Validation
    • Web Frameworks
  • Community
    • Unofficial
  • Resources
    • Official Documentation Translations
  • Services and Apps
  • Tools
    • DevOps
    • Editor Plugins
    • LSP Language Server Protocol Implementations
    • Shell Plugins

Algorithms and Data structures

  • bisect - Inserting values into a sorted array
  • blurhash.cr - 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
  • edits.cr - 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
  • HKDF - HMAC-based Extract-and-Expand Key Derivation Function rfc5869
  • kd_tree - An implementation of "K-Dimensional Tree" and "N-Nearest Neighbors"
  • ksuid.cr - K-Sortable Globally Unique IDs
  • markov - Build Markov Chains and run Markov Processes
  • multiset.cr - Implementation of a multiset
  • named_information - Naming Things with Hashes rfc6920
  • 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
  • SPAKE2+ - Password Authenticated Key Exchange (PAKE) protocol, comparable to SRP-6a
  • splay_tree_map - Splay Tree implementation that conforms to the Hash ducktype
  • verhoeff - Implementation of the Verhoeff checksum algorithm

Blockchain

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

C bindings

  • augeas.cr - Bindings for Augeas
  • clang.cr - Libclang bindings
  • crt.cr - Bindings for libncursesw and crt
  • crystal-gsl - Bindings for GNU Scientific Library
  • crystal-hunspell - Bindings for Hunspell
  • duktape.cr - Bindings for the Duktape javascript engine
  • fftw.cr - Bindings for FFTW library
  • gphoto2.cr - Bindings for the libgphoto2 library
  • gpio.cr - Bindings for the gpiod library (general purpose IO control and feedback)
  • icu.cr - Bindings for the ICU library
  • libnotify.cr - Bindings for Libnotify
  • nlopt.cr - Bindings for NLOpt
  • pcap.cr - Bindings for libpcap
  • pledge.cr - Bindings for OpenBSD's pledge(2)
  • ssh2.cr - Bindings for libssh2 library
  • syslog.cr - Bindings for syslog
  • v4l2.cr - Bindings for Video4Linux2
  • wasmer-crystal - Bindings for the wasmer WebAssembly runtime
  • win32cr - Bindings for Win32 API
  • x_do.cr - Bindings for libxdo (xdotool)

Caching

  • apt-larder - An HTTP caching proxy for APT package repositories
  • cache - A key/value store where pairs can expire after a specified interval
  • crystal-memcached - Implementation of a memcached client

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
  • Cling - A modular, non-macro-based command line interface library
  • 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
  • git-repository - A git cli wrapper querying and cloning remote repositories with minimal data transfer
  • 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
  • progress_bar.cr - 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
  • cruml - A tool that provides an UML class diagram generator for any Crystal projects
  • linguist.cr - Using multiple ways to find programming language used in files, based on Github's Linguist

Compression

  • Crystar - Readers and writers of Tar archive format
  • Gzip - readers and writers of gzip format (Crystal stdlib)
  • polylines.cr — 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)
  • zstd.cr - Bindings for Zstandard compression library

Configuration

  • 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
  • typed_env_config - Load type-safe configuration from YAML/dotenv with ENV overrides
  • ucl.cr - Bindings to libucl, load, dump and validate UCL/JSON configuration

Converters

  • base62.cr - 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)
  • sass.cr - Compile SASS/SCSS to CSS (libsass binding)
  • tssc.cr - Time::Span String Converter (incl. JSON & YAML support)

Cryptography

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

Data Formats

  • BinData - Binary data parser helper with an ASN.1 parser
  • config.cr - 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)
  • front_matter.cr - Separates a files front matter from its content
  • geoip2.cr - GeoIP2 reader
  • HAR - HAR (HTTP Archive) parser
  • INI - INI file parser (Crystal stdlib)
  • jmespath.cr - Crystal implementation of JMESPath, a query language for JSON
  • 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.cr - MaxMindDB reader
  • toml.cr - TOML parser
  • toon-crystal - TOON (Token-Oriented Object Notation) 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
  • hashids.cr - A library to generate YouTube-like ids from one or many numbers
  • prime - A prime number generator

Database Drivers/Clients

  • couchdb.cr - CouchDB client
  • cryomongo - MongoDB driver
  • crystal-db - Common db api
  • crystal-ldap - LDAP client
  • crystal-mysql - MySQL connector for Crystal
  • crystal-pg - A Postgres driver
  • crystal-redis - Full featured Redis client
  • crystal-rethinkdb - Driver for RethinkDB / RebirthDB
  • crystal-sqlite3 - SQLite3 bindings
  • leveldb - Crystal bindings for LevelDB
  • rocksdb.cr - RocksDB client
  • surrealdb.cr - Unoffical SurrealDB HTTP & Websocket Client

Database Tools

  • migrate - A simpler database migration tool with transactions

Debugging

  • backtracer.cr - Shard aiming to assist with parsing backtraces into a structured form
  • debug.cr - 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

Email

  • carbon - Fun, testable, and adapter-based email library
  • crystal-email - Simple e-mail sending library
  • CrystalEmail - A RFC compliant Email validator
  • sendgrid.cr - Simple Sendgrid Client

Environment Management

  • asdf-crystal - Plugin for asdf version manager
  • crenv - Crystal version manager
  • rcm.cr - Redis Cluster Manager
  • vfox-crystal - Plugin for vfox version manager

Examples and funny stuff

  • blackjack-cr - Console Blackjack
  • crystal-patterns - Examples of GOF patters
  • crystalworld - realworld.io back-end API implementation
  • exercism-crystal - Exercism exercises
  • try.cr - Try monad

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
  • motion.cr - Object oriented frontend library for Amber
  • multi-auth - Standardized multi-provider OAuth2 authentication (inspired by omniauth)
  • praetorian - Minimalist authorization library inspired by Pundit
  • rbacr - Role-Based Access Control system with a clean, type-safe DSL for roles, privileges, and authorization logic
  • Shield - Comprehensive security for Lucky framework
  • shrine.cr - 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

  • CrSFML - Bindings to SFML multimedia/game library
  • crystal-chipmunk - Bindings to Chipmunk, a fast and lightweight 2D game physics library
  • crystal-imgui-sfml - Bindings to integrate Dear ImGui into an SFML project
  • entitas.cr - A Entity Component System Framework for Crystal
  • MyECS - A Sparse Entity Component System Framework for Crystal
  • Raylib-cr - Direct bindings to Raylib, which supports Linux, Windows, and Mac
  • SDL-Crystal-Bindings - Direct (unsafe) bindings to SDL2, intended for writing own game libraries

GUI Development

  • CrymbleUI - A nice and fast GUI framework for Crystal. Declarative DSL, Reactive State, Performant, Rich Widget Set including VirtualMatrix and RecursiveGrid
  • crystal-imgui - Bindings to Dear ImGui, an immediate-mode graphical UI library
  • GTK4.cr - Bindings for GTK4 with Crystalized API
  • Iu - UI framework based on the Fusion/libui.cr library, with custom elements and modified bindings from hedron-crystal/hedron
  • Ultimate GTK4 Crystal Guide - Learn how to create premium GTK4 apps in Crystal

HTML Builders

  • blueprint - Write reusable and testable HTML templates in plain Crystal
  • form_builder.cr - Dead simple HTML form builder for Crystal with built-in support for many popular UI libraries such as Bootstrap
  • to_html - The fastest HTML builder engine for Crystal
  • Water - A library for writing HTML in plain Crystal

HTML/XML Parsing

  • docx_cr_converter - parse DOCX Word
  • lexbor - Fast HTML5 Parser that includes CSS selectors

HTTP

  • Cable - An ActionCable "port" to Crystal, framework agnostic, 100% compatible with the ActionCable JS Client
  • cossack - Simple flexible HTTP client
  • crest - Simple HTTP and REST client, inspired by the Ruby's RestClient gem
  • crul - Command line HTTP client
  • cryload - cryload is a powerful, fast, and practical HTTP benchmarking tool for stress testing APIs and web services
  • digest-auth - Digest authentication
  • halite - Crystal HTTP Requests with a chainable REST API, built-in sessions and loggers
  • http-multiserver.cr - Mounting multiple servers via routes (a.k.a. URL mapping)
  • http-params-serializable - HTTP params (de)serialization, applicable to URL queries and URL-encoded forms
  • http-protection - Protection against typical web attacks
  • http2 - HTTP/2 Protocol Implementation
  • HTTP::Client - HTTP client (Crystal stdlib)
  • HTTP::Server - HTTP server (Crystal stdlib)
  • HTTP::WebSocket - HTTP WebSocket client (Crystal stdlib)
  • link-header - HTTP Link Header Parser
  • ntlm - NTLM authentication
  • proxy-fetcher.cr - Proxy lists fetching & validating library
  • sse.cr - Server-Sent Events client

Image processing

  • celestine - Create SVG images using a DSL
  • ffmpeg - FFmpeg bindings that works with StumpyPNG to extract frames
  • Pluto - A fast and convenient image processing library
  • stumpy_png - Read and write PNG images

Implementations/Compilers

  • charly - Charly Programming Language
  • cltk - A crystal port of the Ruby Language Toolkit
  • crisp - Lisp dialect implemented with Crystal
  • GiavaScript - Open-source, cross-platform JavaScript runtime
  • 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
  • novika - A free-form, moldable, interpreted programming language
  • runic-lang - In-design toy language

Internationalization

  • crystal-i18n - An internationalization library inspired by Ruby-I18n
  • i18n.cr - 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

  • crafana - A Grafana library to help autogenerate dashboards
  • fiber_metrics.cr - Track run time, wait time, or memory allocations per Fiber, method or block
  • Log - logging utility (Crystal stdlib)
  • statsd.cr - Statsd client library

Machine Learning

  • ai4cr - Artificial Intelligence (based on https://github.com/SergioFierens/ai4r)
  • Cadmium - NLP library based heavily on natural
  • crystal-fann - FANN (Fast Artifical Neural Network) binding
  • mxnet.cr - Bindings for MXNet
  • shainet - SHAInet (Neural Network in pure crystal)

Markdown/Text Processors

  • cr-cmark-gfm - Crystal C bindings for cmark-gfm to work with Commonmark and Github Flavored Markdown
  • markd - Yet another markdown parser built for speed, Compliant to CommonMark specification

Misc

  • aasm.cr - Easy to use finite state machine for Crystal classes
  • any_hash.cr - Recursive Hash with better JSON::Any included
  • anyolite - Full mruby interpreter with simple bindings, allowing for easy scripting support in projects
  • burocracia.cr - burocracia.cr 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
  • cpf_cnpj - Provide utilities for validating and formatting CPF and CNPJ identifiers
  • 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.cr - Emoji library
  • gphoto2-web.cr - Web API for libgphoto2
  • immutable - Implementation of thread-safe, persistent, immutable collections
  • iterm2 - Display images within the terminal using the ITerm2 Inline Images Protocol
  • lua.cr - Bindings to liblua and a wrapper around it
  • luajit.cr - LuaJIT bindings for Crystal
  • monads - Monad implementation
  • observable - Implementation of the observer pattern
  • pinger - Ping IP addresses and DNS entries without requiring sudo
  • port_midi - Crystal C bindings for the PortMIDI cross-platform MIDI I/O library
  • retriable.cr - Simple DSL to retry failed code blocks
  • sentry - Build/Runs your crystal application, watches files, and rebuilds/restarts app on file changes.
  • serf-handler.cr - Framework for building Serf handlers, with a suite of useful builtin capabilities
  • simple_retry - Simple tool for retrying failed code blocks
  • sslscan.cr - 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

  • amqp-client.cr - AMQP 0-9.1, a messaging protocol, implemented by eg. RabbitMQ
  • connect-proxy - Connect method style of HTTP tunnelling / HTTP proxy
  • cr-xmpp - XMPP/Jabber Library
  • Crirc - IRC protocol implementation (Client, Server, Bots)
  • crystal-bacnet - BACnet protocol implementation with BACnet/IP client
  • crystal-json-socket - JSON-socket client & server implementation. Inspired by and compatible with node-json-socket and ruby-json-socket
  • crystal-mqtt - A MQTT client
  • crystal-snmp - An SNMP implementation with version 1, 2c and 3 support
  • dns - DNS protocol implementation and resolver
  • fast_irc.cr - Fast IRC parser/generator
  • jwt - Implementation of JWT (JSON Web Token)
  • knx - KNX protocol implementation supporting multicast, unicast and TCP/IP tunnelling
  • Matter - Matter protocol for smart home and Internet of things (IoT) devices
  • mDNS - DNS Service Discovery and multicast DNS
  • mqtt-client.cr - A fast and lightweight MQTT client
  • msgpack-crystal - MessagePack library
  • OAuth - OAuth consumer (Crystal stdlib)
  • OAuth2 - OAuth2 client (Crystal stdlib)
  • OpenSSL - bindings to libssl (Crystal stdlib)
  • simple_rpc - RPC Server and Client for Crystal. Implements msgpack-rpc protocol
  • stomp - STOMP protocol
  • telnet.cr - Telnet protocol
  • transfer_more - Clone of transfer.sh to uploads files

Networking

  • ipaddress.cr - Library to handle IPv4 and IPv6 addresses
  • mac-address - Library for working with MAC addresses

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
  • jennifer.cr - Active Record pattern implementation with flexible query chainable builder and migration system
  • lustra - Advanced PostgreSQL ORM with ActiveRecord pattern, full-text search, geometry types, and more
  • 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
  • concurrent.cr - 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

  • crygen - A library that allows to generate the Crystal code
  • 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

  • crafka - Apache Kafka library utilizing librdkafka
  • mosquito - Redis backed periodic and ad hoc job processing
  • NATS.io - NATS client
  • sidekiq.cr - Simple, efficient job processing

Routing

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

Scheduling

  • crystime - Advanced time, calendar, schedule, and remind library
  • schedule.cr - 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
  • num.cr - Numerical computing library supporting N-Dimensional data
  • predict.cr - Satellite prediction library using the sgp4 model
  • quartz - Modeling and simulation framework

Search

  • hermes - Data Mapper pattern implementation for ElastiSearch

Security

  • cyclonedx-cr - CycloneDX SBOM(Software Bill of Materials) generator for Crystal projects
  • OWASP Noir - Attack surface detector that identifies endpoints by static analysis
  • XSSMaze - XSSMaze is a web service that tests security tools using diverse XSS cases

Serverless Computing

  • crystal_openfaas - Template to enable crystal as first class citizens in OpenFaaS
  • secrets-env - Extends ENV module to read values injected by docker / kubernetes secrets and other orchestration tools

System

  • 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

Testing

  • Athena Spec - Common/helpful Spec compliant testing utilities
  • crotest - A tiny and simple test framework
  • crytic - Mutation testing framework
  • hashr - A tiny class makes test on JSON response easier
  • LuckyFlow - Automated browser tests similar to Capybara
  • mass-spec - Web API testing library
  • microtest - Small opinionated testing library focusing on power asserts
  • minitest.cr - Library for unit tests and assertions
  • mocks.cr - Mocking library for Crystal
  • selenium.cr - Selenium client for interacting with web pages for browser automation
  • Spec - spec framework (Crystal stdlib)
  • spectator - Feature rich spec framework that uses the modern expect syntax
  • timecop.cr - Library for mocking with Time.now. 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
  • webmock.cr - Library for stubbing HTTP::Client requests

Third-party APIs

  • amazonite - An unofficial SDK supporting popular AWS APIs
  • aws-signer.cr - This library signs your HTTP requests using AWS v4
  • awscr-s3 - AWS S3 interface
  • awscr-signer - Sign HTTP::Request objects and generate presigned post forms
  • crystal-consul - Consul API client
  • crystal-darksky - Wrapper for the Dark Sky API
  • crystal-swapi - Star Wars API (SWAPI) wrapper
  • crystal_slack - A tool that parses Slack slash commands or send incoming web hooks
  • GDAX - GDAX REST and WebSocket API Wrapper with request signing
  • gitlab.cr - GitLab API wrapper
  • google - Google API wrapper
  • host_meta - A Web Host Metadata (https://tools.ietf.org/html/rfc6415) client
  • kube-client.cr - Kubernetes API Client
  • mixpanel-crystal - A library for sending events to Mixpanel
  • mollie.cr - Mollie Payments API wrapper (Creditcard, PayPal, Apple Pay, Sofort, Klarna, ...)
  • office365 - Microsoft Graph API wrapper
  • pinboard.cr - Pinboard API
  • raven.cr - Raven is a client for Sentry
  • stripe.cr - Stripe api wrapper
  • tmdb.cr - The Movie DB (TMDb) api wrapper
  • twitter-crystal - A library to access the Twitter API
  • web_finger - A WebFinger (https://tools.ietf.org/html/rfc7033) client
  • ynab.cr - A library to interact with your YNAB data

TUI

  • termisu - Minimalistic API for writing text-based user interfaces

Validation

  • accord - Shareable validation library for Crystal Objects
  • Athena Validator - Robust & flexible validation framework
  • validations - Validations mixin
  • validator - Data check and validation

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

Community

  • Crystal Forum
  • Crystal newsletter
  • Gitter
  • IRC - #crystal-lang on Libera
  • Reddit
  • Stackoverflow

Unofficial

  • Crystal Programming Discord Server - Unofficial Discord server dedicated to the Crystal Programming Language
  • Portuguese-speaking Telegram Group - Bem vindos ao Crystal Brasil!
  • Russian-speaking Telegram Group - Добро пожаловать, товарищ!

Resources

  • Crystal for Rubyists - Free book to bootstrap your Crystal journey
  • Crystal Shards for Ruby Gems - A list of Ruby Gems and their Crystal Shards equivalents
  • crystal-koans - Learn Crystal by writing unit tests
  • crystal-lang.org - Official language site
  • devdocs.io - API Documentation Browser with Crystal support
  • Learn X in Y minutes - Quick tutorial on Crystal
  • Programming Crystal - PragProg book to start your Crystal journey
  • Usability of Programming Languages - Comparison of Python, Rust, Crystal

Official Documentation Translations

  • br.crystal-lang.org - Brazilian
  • ja.crystal-lang.org - Japanese
  • kr.crystal-lang.org - Korean
  • ru.crystal-lang.org - Russian
  • tw.crystal-lang.org - Chinese Traditional

Services and Apps

  • carc.in - 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
  • 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
  • procodile - Run processes in the background (and foreground) on Mac & Linux from a Procfile (for production and/or development environments)
  • quicktype - Generate models and serializers from JSON, JSON Schema, GraphQL, and TypeScript
  • shards.info - Web service that lists all repositories on GitHub that have Crystal code in them. The sources are available on GitHub

Tools

  • ast_helper - Helper tool to debug parser and formatter
  • crystal-base - CentOS base docker image for Crystal development
  • crystal-dash-docset - Dash docset generator
  • port_ruby_to_crystal - A regex replace ruby script for port ruby code to crystal easier, reduce friction
  • public_suffix - A small library designed to make the Public Suffix List (https://publicsuffix.org/) easier to use

DevOps

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

Editor Plugins

  • Acme:
    • acmecrystal - Reformats crystal code in acme
  • Atom
    • crystal-tools - Enables built in tools in Crystal compiler
    • language-crystal-actual - Crystal language support in Atom
  • Emacs
    • crystal-mode - Crystal language support for Emacs (crystal-lang-tools/emacs-crystal-mode)
  • Geany
    • geany-crystal - Crystal support for the Geany editor
  • IntelliJ IDEA
    • intellij-crystal-lang - Crystal support for the JetBrains IDEs
  • Lite-XL
    • lite-plugin-crystal - Crystal support for the Lite-XL editor
  • Spacemacs
    • crystal-spacemacs-layer - Spacemacs contribution layer for Crystal
  • Sublime
    • sublime-crystal - Crystal syntax highlighting for sublime Text
  • TextMate
    • Crystal.tmbundle - Crystal syntax highlighting, compile, format command, snippets
  • Vim
    • vim-crystal - Vim filetype support for Crystal
    • vim-slang - Vim filetype support for Slang Templating Engine
  • Visual Studio Code
    • vscode-crystal-lang - Formatter, linter and syntax highlighting for cr and ecr files

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