Your first time on this page? Allow me to give some explanations.
Awesome Crystal
A collection of awesome Crystal libraries, tools, frameworks and software
Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.
Thank you veelenga & contributors
View Topic on GitHub:
veelenga/awesome-crystal
Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.
Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.
Algorithms and Data structures
Library for maintaining sorted Arrays
A pure Crystal implementation of BlurHash algorithm
Compile-time Trie in Crystal
CrOTP - One Time Passwords for Crystal
Simple linked list implementation in Crystal
A pure Crystal Vector Math library
Algorithm Library for Crystal
A collection of containers & algorithms for the Crystal programming language
Edit distance algorithms inc. Jaro, Damerau-Levenshtein, and Optimal Alignment
A Crystal port of awesome Fzy project fuzzy finder algorithm.
graphlb is a crystal library which contains all the graph Data-Structures and Algorithms implemented in crystal-lang.
Crystal implementation of the Haversine formula to calculate distances between two points given their latitudes and longitudes
Crystal implementation of "K-Dimensional Tree" and "N-Nearest Neighbors"
Crystal implementation of K-Sortable Globally Unique IDs
โ A Crystal library for building Markov Chains and running Markov Processes.
Multiset (bag) implementation in Crystal
a QR Code implementation written in crystal lang
Radix Tree implementation for Crystal
Blockchain
To be the go to platform for building dApps quickly and cheaply for business and gaming
Rapid blockchain prototyping
a native library implementing secp256k1 purely for the crystal language
C bindings
libclang bindings for crystal (including automatic C bindings generator)
Bindings for libncursesw and crt class
Crystal bindings for Hunspell.
Crystal C bindings for libcurl
Evaluate JavaScript from Crystal!
Crystal shard wrapping libgphoto2
A Cystal binding/wrapper to the ICU library
Libnotify for Crystal
Crystal bindings for libpcap
Adds pledge(2) to crystal.
libssh2 binding for Crystal language
Adds syslog functionality to crystal via LibC bindings.
Crystal bindings for libxdo (xdotool)
Caching
Memcached client for Crystal language
CLI Builders
A robust DSL for writing command line interfaces written in Crystal.
A simple declarative command line interface builder
Slim command line interface builder for Crystal.
Command-line interface builder for the Crystal programming language.
A lightweight text user interface library in Crystal
A highly flexible Crystal CLI builder in the style of OptionParser.
command-line options processing (Crystal stdlib)
CLI Utils
Tiny tool to make your CLI output ๐ coloured
A light CLI text editor/IDE written in Crystal
Simple and straightforward large files finder utility
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 ProgressBar implementation for the Crystal programming language
Crystal text table generator
Declarative API for drawing unicode/ascii character tables in crystal lang
Code Analysis and Metrics
A static code analysis tool for Crystal
Github's Linguist but in Crystal
Compression
Crystal language Tar Module implements access to tar archives.
Google Polylines in Crystal!
Snappy compression format reader/writer for Crystal
Crystal bindings to the Zstandard (zstd) compression library
Configuration
Loads ".env" files
Load environment variables from YAML
The simplest YAML to ENV config loader in Crystal
Easily configure settings for Crystal projects
Crystal configuration with spirit. Load and parse configuration in JSON, YAML, dotenv formats.
Converters
Base62 encoder/decoder for Crystal
Crystal shard for dealing with money and currency conversion
Compile Sass/SCSS to CSS in Crystal (libsass binding)
Crystal C bindings and wrapper for libwkhtmltox library
Cryptography
Crystal implementation of the Cipher-based Message Authentication Code (CMAC)
Crystal wrapper for the libsodium crypto API
Data Formats
BinData - Parsing Binary Data in Crystal Lang
Easy to use configuration and parser.
Class based json renderer in Crystal
(De)serialize any Crystal object - out of the box. Supports JSON, YAML and Byte format.
Separates a files front matter from its content
MaxMind GeoIP2 Reader for Crystal
HAR (HTTP Archive) parser in Crystal
[Crystal Lang] Handle and mutate JSON document easily
MaxMind DB Reader for Crystal
TOML parser for Crystal
parsing and generating for comma-separated values (Crystal stdlib)
Data Generators
Faker is a Crystal library that generates fake data for you
A Crystal shard to generate YouTube-like hashes from one or many numbers. Use hashids when you do not want to expose your database ids to the user.
A Crystal implementation of a prime number generator
Database Drivers/Clients
CouchDB client library written in crystal
A MongoDB driver written in pure Crystal. โ๏ธ
Common db api for crystal
a Crystal lang LDAP client
MySQL connector for Crystal
a postgres driver for crystal
Full featured Redis client for Crystal
driver for rethinkdb / rebirthdb
SQLite3 bindings for Crystal
Crystal binding for LevelDB
RocksDB client for Crystal
Database Tools
A database migration solution ๐
A very basic setupless terminal based SQL query runner meant to be used as a developer tool to test queries against a project database.
Debugging
Debug macro for Crystal
Dependency Injection
Robust dependency injection service container framework
Lightweight DI Container for Crystal
A compile-time, non-intrusive dependency injection system.
Basic DI for the Crystal programming language
Email library for Crystal. Testable, adapter-based, and catches bugs for you. Comes with an adapter for SendGrid.
Simple e-mail sending library
Simple lib to send mail using Sendgrid in Crystal-Lang
Environment Management
Crystal plugin for the asdf version manager
Crystal version manager like rbenv.
Redis Cluster Manager in Crystal
Examples and funny stuff
Blackjack written in Crystal
Examples of GOF patterns written in Crystal
RealWorld back-end API implementation ๐
Exercism exercises in Crystal.
Try monad for crystal
Framework Components
A Mediator and Observer pattern event library
Framework agnostic content negotiation library
Crystal shard for device detection by User-Agent string
An exceptional exception page for Crystal web libraries and frameworks
GraphQL server library for Crystal
a graphql implementation for crystal
Simple session handler for Kemal
Mochi Authentication
Standardized multi-provider OAuth authentication
A minimalist Crystal authorization system inspired by https://github.com/varvet/pundit.
Comprehensive security for Lucky framework
File Attachment toolkit for Crystal applications. Heavily inspired by Shrine for Ruby.
Telegram Bot framework for Crystal
Game Development
Crystal bindings to SFML multimedia/game library
Crystal bindings to Chipmunk, a fast and lightweight 2D game physics library
Crystal bindings to ImGui-SFML
Entity Component System Framework writen in crystal
GUI Development
Crystal bindings to Dear ImGui
UI framework based on the Fusion/libui.cr library, with elements from watzon/cru.
HTML Builders
Dead simple HTML form builder for Crystal with built-in support for many popular UI libraries such as Bootstrap
HTML/XML Parsing
Converter .DOCX to many formats
Crystal C bindings for Gumbo library
Fast HTML5 Parser with css selectors for Crystal language
HTTP
It's like ActionCable (100% compatible with JS Client), but you know, for Crystal
Simple and flexible HTTP client for Crystal with middleware and test support.
HTTP and REST client for Crystal
Command line HTTP client written in Crystal
HTTP digest auth for crystal lang
๐HTTP Requests Client with a chainable REST API, built-in sessions and middlewares.
Mount multiple web applications ๐ฆ
The HTTP params parsing module for Crystal ๐ค
This library protects against typical web attacks. It was inspired in rack-protection Ruby gem.
HTTP/2 Protocol Implementation for the Crystal Language
NTLM authentication for crystal lang
Crystal port of awesome Ruby ProxyFetcher gem
A Crystal shard for Server-Sent Events
HTTP WebSocket client (Crystal stdlib)
Image processing
An SVG library written in Crystal. Can be used to make cool animations, as well as other kinds of uses.
Read/Write PNG images in pure Crystal
Implementations/Compilers
A crystal port of the Ruby Language Toolkit
Lisp dialect implemented with Crystal
A refreshing programming language for the front-end web.
Logging and monitoring
Crystal library to help autogenerate Grafana dashboards
A statsd client library for Crystal.
Machine Learning
Artificial Intelligence for Crystal (based on https://github.com/SergioFierens/ai4r)
Natural Language Processing (NLP) library for Crystal
FANN (Fast Artifical Neural Network) binding in Crystal
MXNet (AI/ML) bindings for the Crystal language.
SHAInet - a pure Crystal machine learning library
Markdown/Text Processors
Yet another markdown parser, Compliant to CommonMark specification, written in Crystal.
Misc
Easy to use finite state machine for Crystal classes
Better JSON::Any for Crystal
Embedded mruby for Crystal
No dependency Crystal shard to validate, generate and format Brazilian burocracias such as CPF, CNPJ and CEP
Expressive callbacks module for Crystal ๐
Implementation of the circuit breaker pattern in crystal
A signals/slots library in Crystal
Binary parser for Crystal
โญ๏ธ Web frameworks for Crystal, most starred on Github
Functional programming library for https://github.com/crystal-lang/crystal
Emoji for Crystal
Web API for libgphoto2
Internationalization shard ๐
Thread-safe, persistent, immutable collections for the Crystal language
Display images within the terminal using the ITerm2 Inline Images Protocol.
Rails compatible MessageVerifier for Crystal-lang apps
Monads for Crystal
Microlibrary to perform ping requests with Crystal Lang
Crystal C bindings for the PortMIDI cross-platform MIDI I/O library
Retriable.cr is a simple DSL to retry failed code blocks
a tool for retrying code blocks
Crystal shard wrapping the rbsec/sslscan utility
Crystal tools for providing different behaviour at compile-time based on semantic versions
Web Application Firewall (WAF) Detector
Crystal shard for filename sanitization
Network Protocols
An AMQP 0-9-1 client for Crystal
crystal lang connect / HTTP proxy implementation
XMPP/Jabber Library for Crystal
A crystal lib for irc client
JSON-socket client & server implementation. Inspired by and compatible with sebastianseilund/node-json-socket
Crystal lang implementation of the MQTT protocol, a lightweight protocol for publish/subscribe messaging
SNMP implementation for crystal lang
A fast IRC parsing library for crystal.
JWT implementation in Crystal
Crystal Lang mDNS and DNS-SD Support
MessagePack implementation in Crystal msgpack.org[Crystal]
Telnet protocol helper for crystal lang
Networking
A Crystal library to handle IPv4 and IPv6 addresses in a modern and productive way.
ORM/ODM Extensions
A Crystal database wrapper for reading, writing, and migrating Postgres databases.
Advanced ORM between postgreSQL and Crystal
Database wrapper and ORM for Crystal, inspired by Ecto
ORM Model with Adapters for mysql, pg, sqlite in the Crystal Language.
Crystal ORM using ActiveRecord pattern with flexible query DSL
A delightful SQL ORM โบ๏ธ
RethinkDB ORM for Crystal lang
Package Management
Dependency manager for the Crystal language
Processes and Threads
Provide await and async methods to Crystal Lang
A modern command line job processor, similar with make command
Type aware promises for crystal lang
Dead simple task runner
Project Generators
Automatic binding generator for native libraries in Crystal
A Kemal application generator
Automatic C-bindings generator for the Crystal language
Queues and Messaging
A generic background task runner for crystal applications supporting periodic (CRON) and manually queued jobs
Crystal client for NATS
Simple, efficient job processing for Crystal
Routing
A Crystal router
Minimum High Performance Middleware for Crystal Web Server.
Scheduling
Run periodic tasks in Crystal
Scheduled tasks for crystal lang
Advanced time, calendar, schedule, and remind library
Science and Data analysis
Repeatable pseudo-random sampling, CDF over most known probability distributions.
Graph plotting package with a small API and sensible defaults powered by gnuplot.
Linear algebra library based on LAPACK
Scientific computing in pure Crystal
Satellite prediction library for crystal using the sgp4 model
Quartz - A Crystal Modeling & Simulation framework
Search
Datamapper like Crystal ORM and adapter for Elasticsearch
Elasticsearch client library for crystal, similar to rubys stretcher gem
Serverless Computing
OpenFaaS template for the crystal programming language
Extension to the crystal lang ENV module to support reading secrets
Serverless Software Development Platform for Ruby and Crystal developers.
System
Virtual File System for Crystal language. Embedding your assets into final binary.
Get CPU, Memory and Network informations of the running OS and its processes
Task management
Cake is a powerful and flexible Make-like utility tool. Make Tasks Great Again!
Rake-like task manager
Template Engine
Implementation of Jinja2 template language in Crystal
{{Mustache}} for Crystal
Generate JSON objects with a Builder-style DSL, inspired by jbuilder
Generic template interface for Crystal
Slim-inspired templating language for Crystal
A Crystal library for rendering multiple template files.
A library for writing HTML in plain Crystal.
compile time template language which uses plain crystal expressions (Crystal stdlib)
Testing
Common/helpful Spec compliant testing utilities
A tiny and simple test framework for crystal
Mutation testing for crystal.
Automated browser tests for web applications. Similar to Ruby's Capybara.
Web API testing library
Smaller test framework, because it has power asserts as the only assertion.
Test Unit for the Crystal programming language
General purpose mocking library for Crystal.
A testing library that allows "time travel," "freezing time," and "time acceleration". Inspired by the ruby-timecop library.
VCR for Crystal!
Page Object Model library for Crystal. A port (kind of) of Ruby's WatirPump
Mock HTTP::Client
Feature rich spec framework that uses the modern expect syntax
Third-party APIs
This library signs your HTTP requests using AWS v4
A Crystal shard for S3.
AWS request signing in Crystal
Crystal client for Consul (http://www.consul.io/)
Dark Sky API for Crystal
Star Wars API (SWAPI) for Crystal
Parse Slack slash commands or send incoming web hooks from Crystal
๐ GDAX REST and WebSocket API wrapper to trade blockchain cryptocurrencies like bitcoin, Litecoin and Ethereum.
Gitlab.cr is a GitLab API wrapper written by Crystal
Crystal Lang Google API integration
A Web Host Metadata (https://tools.ietf.org/html/rfc6415) client for Crystal.
k8s api client
Track events on Mixpanel with Crystal
Mollie API client for Crystal http://www.mollie.com
Crystal Lang MS Graph API integration
A crystal client for the Pinboard API
Raven is a Crystal client for Sentry
Stripe API Wrapper for crystal
A library to access the Twitter API using Crystal
A WebFinger (https://tools.ietf.org/html/rfc7033) client for Crystal.
YNAB Shard for Crystal
Validation
Validations for Crystal Objects
Object/value validation library
Validations module for Crystal โ
Data validation module for Crystal lang
Web Frameworks
A Crystal web framework that makes building applications fast, simple, and enjoyable. Get started with quick prototyping, less bugs, and blazing fast performance.
A web framework comprised of reusable, independent components
The microframework for writing powerful web applications.
Fast, Effective, Simple Web Framework
A full-featured Crystal web framework that catches bugs for you, runs incredibly fast, and helps you write code that lasts.
An api framework with simple, intuitive and consistent DSL, using jbuilder to render json. https://runcobo.github.io/docs/
Component based MVC web framework based on fort architecture targeting good code structures, modularity & performance.
A Rails esque web framework with a focus on speed and extensibility for crystal lang
Community
Unofficial
Unofficial Discord server dedicated to the Crystal Programming Language
ะะพะฑัะพ ะฟะพะถะฐะปะพะฒะฐัั, ัะพะฒะฐัะธั!
Resources
The Crystal Programming Language Koans
PragProg book to start your Crystal journey
Official Documentation Translations
Services and Apps
Foreman port to crystal.
Ability to execute crystal code in a fashion similar to pry edit.
My IRC Bot
Interactive console for Crystal programming language
Invidious is an alternative front-end to YouTube
A simple and fast URL shortener with built in stats.
crystalshards.xyz](http://crystalshards.xyz/) - Web services that list all available Crystal shards
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
Tools
Helper tool to debug parser and formatter
A CentOS based docker image for Crystal work
Dash docset generator for Crystal
A small Crystal library designed to make the Public Suffix List (https://publicsuffix.org/) easier to use.
DevOps
Install crystal
An easy way to install and manage server applications
Editor Plugins
Maintained at https://github.com/crystal-lang-tools/emacs-crystal-mode
Crystal support for the Geany editor
Spacemacs contribution layer for Crystal
Crystal syntax highlighting for Sublime Text
TextMate 2 Bundle Crystal
Vim filetype and tools support for Crystal language.
Vim plugin for Slim-lang in Crystal
Yet another VSCode extension for Crystal Programming Language
Crystal language support in Atom
LSP Language Server Protocol Implementations
A Language Server Protocol implementation for Crystal. ๐ฎ
Scry is a code analysis server for https://crystal-lang.org
Shell plugins
Crystal Run : shebang wrapper for Crystal
.oh-my-zsh plugin for Crystal