An open API service indexing awesome lists of open source software.

awesome-crystal

:gem: A collection of awesome Crystal libraries, tools, frameworks and software
https://github.com/veelenga/awesome-crystal

Last synced: 18 days ago
JSON representation

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
  • 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
  • crystal-linked-list - Implementation of Linked List

Blockchain

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

Caching

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

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
  • Cling - A modular, non-macro-based command line interface library
  • commander - Command-line interface builder
  • Keimeno - A lightweight text user interface library in Crystal
  • Phreak - A highly flexible Crystal CLI builder in the style of OptionParser

CLI Utils

  • climate - Tiny tool to make your CLI output 🌈 coloured
  • 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
  • coin - Command-line application that performs currency conversion via the Fixer API

Code Analysis and Metrics

  • ameba - A static code analysis tool
  • linguist.cr - Using multiple ways to find programming language used in files, based on Github's Linguist
  • cruml - A tool that provides an UML class diagram generator for any Crystal projects

Compression

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

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

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
  • monocypher.cr - Crystal wrapper for the Monocypher crypto library
  • sodium.cr - Crystal wrapper for the libsodium crypto API

Database Drivers/Clients

Database Tools

  • migrate - A simpler database migration tool with transactions

Data Formats

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

Debugging

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

Dependency Injection

DevOps

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

Editor Plugins

Email

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
  • multi-auth - Standardized multi-provider OAuth2 authentication (inspired by omniauth)
  • praetorian - Minimalist authorization library inspired by Pundit
  • 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
  • mochi - Authentication shard inspired by Devise supporting: Authenticable, Confirmable, Invitable & more
  • rbacr - Role-Based Access Control system with a clean, type-safe DSL for roles, privileges, and authorization logic
  • kemal-identity - Authentication and identity primitives with first-class Kemal integration

Game Development

GUI Development

HTML Builders

  • 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
  • blueprint - Write reusable and testable HTML templates in plain Crystal

HTML/XML Parsing

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
  • 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