/awesome-crystal

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

Primary LanguageCrystalMIT LicenseMIT

Awesome Crystal Awesome Build Status

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 users.

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

Api Builders

  • crystal_api - Simple PostgreSQL REST API with Rails devise-like auth

Caching

Cli Builders

Configuration

Data Generators

  • faker - A library for generating fake data
  • random.cr - Random number generation, provides interface for the SIMD-oriented Fast Mersenne Twister (dSFMT)

Database Drivers

Environment Management

  • crenv - Crystal version manager

HTTP

Implementations/Compilers

  • crisp - Lisp dialect implemented with Crystal
  • crystal - Crystal itself is written in Crystal

Misc

  • aasm.cr - Easy to use finite state machine for Crystal classes
  • artanis - Sinatra-like DSL for the Crystal language (abusing macros)
  • chalk-box - Terminal color toolbox, check support and colorized (without String monkey patch)
  • crdoc - CLI tool to search and open documentation
  • cron_scheduler - Job scheduler with crontab patterns
  • crystal-diff - A Crystal sequence differencing implementation
  • crystal-futures - Future type implementation
  • crystal-i18n - Internationalization library
  • crystal-mime - Mimetypes for Crystal
  • crystalline - A collection of containers and algorithms
  • duktape.cr - Bindings for the Duktape javascript engine
  • emoji.cr - Emoji library
  • evented - A micro library to publish and subscribe for Crystal objects
  • guardian - File change watcher for Crystal and Non-Crystal libs
  • haikunator - Heroku-like random name generator
  • heap.cr - Implementation of head data structure
  • html_builder - DSL for creating HTML
  • immutable - Implementation of thread-safe, persistent, immutable collections
  • lambda.cr - Uniformed function call syntax
  • progress - [==..] Progress bar
  • spinner - Terminal Spinner
  • syscall.cr - Raw syscall interface
  • termbox-crystal - Bindings and extension library for termbox (terminal UI library)
  • zlib.cr - Bindings for ZLib library

Multimedia

Networking

  • amqp.cr - AMQP 0.9.1 client with RabbitMQ extensions
  • bson.cr - Native BSON implementation
  • jwt - Implementation of JWT (JSON Web Token)
  • msgpack-crystal - MessagePack library
  • ssh2.cr - Library that provides binding for libssh2 library

ORM/ODM Extensions

Package Management

  • shards - Dependency manager for the Crystal

Project generators

  • generate - A tool for generating whole Crystal project structure, or any part of it during lifetime of project

Search

  • soegen - Elasticsearch client for Crystal similar to the stretcher gem for ruby

Security

Task management

  • crake - Rake-like build utility library. It is just a library, so it does not provide CLI
  • lake - Rake-like task management for Crystal programs

Template Engine

  • Bunny - A simple HTML templating language for Crystal, same syntax as erb
  • crustache - {{Mustache}} for Crystal
  • Kilt - Abstraction layer for template engines.
  • Slang - Lightweight, terse, templating language inspired by Ruby's Slim.
  • temel - Extensible HTML::Builder alternative for Crystal, supports custom tag definitions

Testing

Third-party APIs

Virtualization

  • rcpu - A virtual machine emulator and assembler

Web Frameworks

  • amatista - A web framework to create quick applications
  • amethyst - A Rails inspired web-framework
  • carbon-crystal - A framework with Rails in mind
  • chocolate - Simple web framework and template engine
  • frost - Full featured MVC Web Framework, largely inspired by Ruby on Rails
  • kemal - Lightning Fast, Super Simple web framework. Inspired by Sinatra
  • moonshine - A minimal web framework

Web Servers

  • fast-http-server - Super fast, zero configuration command line HTTP Server.
  • kamber - Blog server based on Kemal
  • prax.cr - Rack proxy server for development

Community

Resources

Services and Apps

  • carc.in - A web service that runs your code and displays the result
  • Crank - A Procfile-based application manager (like Foreman)
  • crystalshards - A web service that lists all available Crystal shards
  • DeBot - IRC bot written in Crystal
  • docrystal - A web application that hosts documentation for Crystal packages
  • fikri - Simple CLI To-Do App
  • icr - Interactive console for Crystal (like IRB for Ruby)
  • nes - A NES emulator
  • vicr - Vim-like Interactive CRystal

Tools

DevOps

Editor Plugins