1380 lines
62 KiB
HTML
1380 lines
62 KiB
HTML
<p><a
|
||
href="https://github.com/vshymanskyy/StandWithUkraine/blob/main/docs/README.md"><img
|
||
src="https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner-direct.svg"
|
||
alt="SWUbanner" /></a></p>
|
||
<p align="center">
|
||
<img src="logo/logotype_horizontal.jpg" alt="awesome-crystal">
|
||
</p>
|
||
<h1 id="awesome-crystal">Awesome Crystal</h1>
|
||
<p><a href="https://awesome.re"><img src="https://awesome.re/badge.svg"
|
||
alt="Awesome" /></a></p>
|
||
<p>A curated list of awesome Crystal code and resources. Inspired by <a
|
||
href="https://github.com/sindresorhus/awesome">awesome</a> and <a
|
||
href="https://github.com/bayandin/awesome-awesomeness">awesome-awesomeness</a>.
|
||
The goal is to have projects mostly stable and useful for the
|
||
community.</p>
|
||
<p>Search shards at <a href="https://shards.info">shards.info</a> for
|
||
more.</p>
|
||
<p>Contributions are welcome. Please take a quick look at the <a
|
||
href="https://github.com/veelenga/awesome-crystal/blob/master/.github/CONTRIBUTING.md">contribution
|
||
guidelines</a> first.</p>
|
||
<ul>
|
||
<li><a href="#awesome-crystal">Awesome Crystal</a>
|
||
<ul>
|
||
<li><a href="#algorithms-and-data-structures">Algorithms and Data
|
||
structures</a></li>
|
||
<li><a href="#blockchain">Blockchain</a></li>
|
||
<li><a href="#c-bindings">C Bindings</a></li>
|
||
<li><a href="#caching">Caching</a></li>
|
||
<li><a href="#cli-builders">CLI Builders</a></li>
|
||
<li><a href="#cli-utils">CLI Utils</a></li>
|
||
<li><a href="#code-analysis-and-metrics">Code Analysis and
|
||
Metrics</a></li>
|
||
<li><a href="#compression">Compression</a></li>
|
||
<li><a href="#configuration">Configuration</a></li>
|
||
<li><a href="#converters">Converters</a></li>
|
||
<li><a href="#cryptography">Cryptography</a></li>
|
||
<li><a href="#data-formats">Data Formats</a></li>
|
||
<li><a href="#data-generators">Data Generators</a></li>
|
||
<li><a href="#database-driversclients">Database Drivers/Clients</a></li>
|
||
<li><a href="#database-tools">Database Tools</a></li>
|
||
<li><a href="#debugging">Debugging</a></li>
|
||
<li><a href="#dependency-injection">Dependency Injection</a></li>
|
||
<li><a href="#email">Email</a></li>
|
||
<li><a href="#environment-management">Environment Management</a></li>
|
||
<li><a href="#examples-and-funny-stuff">Examples and funny
|
||
stuff</a></li>
|
||
<li><a href="#framework-components">Framework Components</a></li>
|
||
<li><a href="#game-development">Game Development</a></li>
|
||
<li><a href="#gui-development">GUI Development</a></li>
|
||
<li><a href="#html-builders">HTML Builders</a></li>
|
||
<li><a href="#htmlxml-parsing">HTML/XML parsing</a></li>
|
||
<li><a href="#http">HTTP</a></li>
|
||
<li><a href="#image-processing">Image Processing</a></li>
|
||
<li><a
|
||
href="#implementationscompilers">Implementations/Compilers</a></li>
|
||
<li><a href="#internationalization">Internationalization</a></li>
|
||
<li><a href="#logging-and-monitoring">Logging and monitoring</a></li>
|
||
<li><a href="#machine-learning">Machine Learning</a></li>
|
||
<li><a href="#markdowntext-processors">Markdown/Text Processors</a></li>
|
||
<li><a href="#misc">Misc</a></li>
|
||
<li><a href="#network-protocols">Network Protocols</a></li>
|
||
<li><a href="#networking">Networking</a></li>
|
||
<li><a href="#ormodm-extensions">ORM/ODM Extensions</a></li>
|
||
<li><a href="#package-management">Package Management</a></li>
|
||
<li><a href="#processes-and-threads">Processes and Threads</a></li>
|
||
<li><a href="#project-generators">Project Generators</a></li>
|
||
<li><a href="#queues-and-messaging">Queues and Messaging</a></li>
|
||
<li><a href="#routing">Routing</a></li>
|
||
<li><a href="#scheduling">Scheduling</a></li>
|
||
<li><a href="#science-and-data-analysis">Science and Data
|
||
analysis</a></li>
|
||
<li><a href="#search">Search</a></li>
|
||
<li><a href="#serverless-computing">Serverless Computing</a></li>
|
||
<li><a href="#system">System</a></li>
|
||
<li><a href="#task-management">Task management</a></li>
|
||
<li><a href="#template-engine">Template Engine</a></li>
|
||
<li><a href="#testing">Testing</a></li>
|
||
<li><a href="#third-party-apis">Third-party APIs</a></li>
|
||
<li><a href="#validation">Validation</a></li>
|
||
<li><a href="#web-frameworks">Web Frameworks</a></li>
|
||
</ul></li>
|
||
<li><a href="#community">Community</a>
|
||
<ul>
|
||
<li><a href="#unofficial">Unofficial</a></li>
|
||
</ul></li>
|
||
<li><a href="#resources">Resources</a>
|
||
<ul>
|
||
<li><a href="#official-documentation-translations">Official
|
||
Documentation Translations</a></li>
|
||
</ul></li>
|
||
<li><a href="#services-and-apps">Services and Apps</a></li>
|
||
<li><a href="#tools">Tools</a>
|
||
<ul>
|
||
<li><a href="#devops">DevOps</a></li>
|
||
<li><a href="#editor-plugins">Editor Plugins</a></li>
|
||
<li><a href="#lsp-language-server-protocol-implementations">LSP Language
|
||
Server Protocol Implementations</a></li>
|
||
<li><a href="#shell-plugins">Shell Plugins</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="algorithms-and-data-structures">Algorithms and Data
|
||
structures</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/spider-gazelle/bisect">bisect</a> -
|
||
Inserting values into a sorted array</li>
|
||
<li><a href="https://github.com/Sija/blurhash.cr">blurhash.cr</a> - <a
|
||
href="https://github.com/woltapp/blurhash">BlurHash</a>
|
||
implementation</li>
|
||
<li><a href="https://github.com/c910335/crie">crie</a> - Compile-time
|
||
Trie</li>
|
||
<li><a href="https://github.com/philnash/crotp">CrOTP</a> - HOTP and
|
||
TOTP implementation for two factor authentication</li>
|
||
<li><a
|
||
href="https://github.com/abvdasker/crystal-linked-list">crystal-linked-list</a>
|
||
- Implementation of Linked List</li>
|
||
<li><a href="https://github.com/unn4m3d/crystaledge">crystaledge</a> - A
|
||
pure Vector Math library</li>
|
||
<li><a href="https://github.com/tobyapi/crystalg">crystalg</a> - A
|
||
Generic Algorithm Library</li>
|
||
<li><a
|
||
href="https://github.com/jtomschroeder/crystalline">crystalline</a> - A
|
||
collection of containers and algorithms</li>
|
||
<li><a href="https://github.com/wyhaines/csuuid.cr">csuuid</a> - A
|
||
Chronologically Sortable UUID</li>
|
||
<li><a href="https://github.com/tcrouch/edits.cr">edits.cr</a> -
|
||
Collection of edit distance algorithms</li>
|
||
<li><a href="https://github.com/hugopl/fzy">fzy</a> - A Crystal port of
|
||
awesome Fzy project fuzzy finder algorithm</li>
|
||
<li><a href="https://github.com/soya-daizu/goban">Goban</a> - A fast and
|
||
efficient QR Code implementation</li>
|
||
<li><a href="https://github.com/mettuaditya/graphlb">graphlb</a> -
|
||
Collection of graph datastructure and algorithms</li>
|
||
<li><a href="https://github.com/geocrystal/haversine">haversine</a> - An
|
||
Implementation of the Haversine formula</li>
|
||
<li><a href="https://github.com/spider-gazelle/HKDF">HKDF</a> -
|
||
HMAC-based Extract-and-Expand Key Derivation Function <a
|
||
href="https://www.rfc-editor.org/rfc/rfc5869">rfc5869</a></li>
|
||
<li><a href="https://github.com/geocrystal/kd_tree">kd_tree</a> - An
|
||
implementation of “K-Dimensional Tree” and “N-Nearest Neighbors”</li>
|
||
<li><a href="https://github.com/Sija/ksuid.cr">ksuid.cr</a> - K-Sortable
|
||
Globally Unique IDs</li>
|
||
<li><a href="https://github.com/mccallofthewild/markov">markov</a> -
|
||
Build Markov Chains and run Markov Processes</li>
|
||
<li><a href="https://github.com/tcrouch/multiset.cr">multiset.cr</a> -
|
||
Implementation of a multiset</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/named_information">named_information</a>
|
||
- Naming Things with Hashes <a
|
||
href="https://datatracker.ietf.org/doc/html/rfc6920">rfc6920</a></li>
|
||
<li><a href="https://github.com/spider-gazelle/qr-code">qr-code</a> - QR
|
||
Code generator</li>
|
||
<li><a href="https://github.com/luislavena/radix">radix</a> - Radix Tree
|
||
implementation</li>
|
||
<li><a href="https://github.com/spider-gazelle/s2_cells">s2_cells</a> -
|
||
<a href="https://s2geometry.io/devguide/s2cell_hierarchy.html">S2
|
||
Geometry</a> for spatial indexing</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/secure-remote-password">secure-remote-password</a>
|
||
- SRP-6a protocol for authentication over an insecure network</li>
|
||
<li><a href="https://github.com/spider-gazelle/SPAKE2_plus">SPAKE2+</a>
|
||
- Password Authenticated Key Exchange (PAKE) protocol, comparable to
|
||
SRP-6a</li>
|
||
<li><a
|
||
href="https://github.com/wyhaines/splay_tree_map.cr">splay_tree_map</a>
|
||
- Splay Tree implementation that conforms to the Hash ducktype</li>
|
||
<li><a href="https://github.com/spider-gazelle/verhoeff">verhoeff</a> -
|
||
Implementation of the Verhoeff checksum algorithm</li>
|
||
</ul>
|
||
<h2 id="blockchain">Blockchain</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/Axentro/Axentro">Axentro</a> - A custom
|
||
blockchain platform</li>
|
||
<li><a href="https://github.com/cocol-project/cocol">Cocol</a> - A
|
||
minimal blockchain testbed</li>
|
||
<li><a href="https://github.com/q9f/secp256k1.cr">secp256k1.cr</a> -
|
||
Elliptic curve used in the public-private-key cryptography</li>
|
||
</ul>
|
||
<h2 id="c-bindings">C bindings</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/fernandes/augeas.cr">augeas.cr</a> -
|
||
Bindings for <a href="https://augeas.net/">Augeas</a></li>
|
||
<li><a href="https://github.com/crystal-lang/clang.cr">clang.cr</a> -
|
||
Libclang bindings</li>
|
||
<li><a href="https://github.com/maiha/crt.cr">crt.cr</a> - Bindings for
|
||
libncursesw and crt</li>
|
||
<li><a href="https://github.com/konovod/crystal-gsl">crystal-gsl</a> -
|
||
Bindings for <a href="https://www.gnu.org/software/gsl/">GNU Scientific
|
||
Library</a></li>
|
||
<li><a
|
||
href="https://github.com/mamantoha/crystal-hunspell">crystal-hunspell</a>
|
||
- Bindings for <a href="https://hunspell.github.io/">Hunspell</a></li>
|
||
<li><a href="https://github.com/jessedoyle/duktape.cr">duktape.cr</a> -
|
||
Bindings for the <a
|
||
href="https://github.com/svaarala/duktape">Duktape</a> javascript
|
||
engine</li>
|
||
<li><a href="https://github.com/firejox/fftw.cr">fftw.cr</a> - Bindings
|
||
for <a href="https://fftw.org/">FFTW</a> library</li>
|
||
<li><a href="https://github.com/Sija/gphoto2.cr">gphoto2.cr</a> -
|
||
Bindings for the <a href="http://www.gphoto.org/">libgphoto2</a>
|
||
library</li>
|
||
<li><a href="https://github.com/spider-gazelle/gpio.cr">gpio.cr</a> -
|
||
Bindings for the gpiod library (general purpose IO control and
|
||
feedback)</li>
|
||
<li><a href="https://github.com/olbat/icu.cr">icu.cr</a> - Bindings for
|
||
the <a href="http://site.icu-project.org/">ICU</a> library</li>
|
||
<li><a href="https://github.com/splattael/libnotify.cr">libnotify.cr</a>
|
||
- Bindings for Libnotify</li>
|
||
<li><a href="https://github.com/konovod/nlopt.cr">nlopt.cr</a> -
|
||
Bindings for <a
|
||
href="https://nlopt.readthedocs.io/en/latest/">NLOpt</a></li>
|
||
<li><a href="https://github.com/maiha/pcap.cr">pcap.cr</a> - Bindings
|
||
for libpcap</li>
|
||
<li><a href="https://github.com/chris-huxtable/pledge.cr">pledge.cr</a>
|
||
- Bindings for OpenBSD’s <code>pledge(2)</code></li>
|
||
<li><a href="https://github.com/spider-gazelle/ssh2.cr">ssh2.cr</a> -
|
||
Bindings for libssh2 library</li>
|
||
<li><a href="https://github.com/chris-huxtable/syslog.cr">syslog.cr</a>
|
||
- Bindings for <code>syslog</code></li>
|
||
<li><a href="https://github.com/spider-gazelle/v4l2.cr">v4l2.cr</a> -
|
||
Bindings for <a
|
||
href="https://en.wikipedia.org/wiki/Video4Linux">Video4Linux2</a></li>
|
||
<li><a
|
||
href="https://github.com/naqvis/wasmer-crystal">wasmer-crystal</a> -
|
||
Bindings for the <code>wasmer</code> WebAssembly runtime</li>
|
||
<li><a href="https://github.com/mjblack/win32cr">win32cr</a> - Bindings
|
||
for Win32 API</li>
|
||
<li><a href="https://github.com/woodruffw/x_do.cr">x_do.cr</a> -
|
||
Bindings for libxdo (<a
|
||
href="https://github.com/jordansissel/xdotool"><code>xdotool</code></a>)</li>
|
||
</ul>
|
||
<h2 id="caching">Caching</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/comandeo/crystal-memcached">crystal-memcached</a>
|
||
- Implementation of a memcached client</li>
|
||
</ul>
|
||
<h2 id="cli-builders">CLI Builders</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/jwaldrip/admiral.cr">admiral</a> - A
|
||
robust DSL for writing command line interfaces</li>
|
||
<li><a href="https://github.com/athena-framework/console">Athena
|
||
Console</a> - Allows for the creation of CLI based commands</li>
|
||
<li><a href="https://github.com/j8r/clicr">clicr</a> - A simple
|
||
declarative command line interface builder</li>
|
||
<li><a href="https://github.com/at-grandpa/clim">clim</a> - Slim command
|
||
line interface builder</li>
|
||
<li><a href="https://github.com/devnote-dev/cling">Cling</a> - A
|
||
modular, non-macro-based command line interface library</li>
|
||
<li><a href="https://github.com/mrrooijen/commander">commander</a> -
|
||
Command-line interface builder</li>
|
||
<li><a href="https://github.com/robacarp/keimeno">Keimeno</a> - A
|
||
lightweight text user interface library in Crystal</li>
|
||
<li><a
|
||
href="https://crystal-lang.org/api/OptionParser.html">OptionParser</a> -
|
||
command-line options processing (Crystal stdlib)</li>
|
||
<li><a href="https://github.com/shinzlet/phreak">Phreak</a> - A highly
|
||
flexible Crystal CLI builder in the style of OptionParser</li>
|
||
</ul>
|
||
<h2 id="cli-utils">CLI Utils</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/Sija/climate.cr">climate</a> - Tiny tool
|
||
to make your CLI output 🌈 coloured</li>
|
||
<li><a href="https://github.com/caian-org/coin">coin</a> - Command-line
|
||
application that performs currency conversion via the <a
|
||
href="https://fixer.io">Fixer API</a></li>
|
||
<li><a href="https://github.com/j8r/cride">cride</a> - A light CLI text
|
||
editor/IDE</li>
|
||
<li><a
|
||
href="https://github.com/place-labs/git-repository">git-repository</a> -
|
||
A git cli wrapper querying and cloning remote repositories with minimal
|
||
data transfer</li>
|
||
<li><a href="https://github.com/vitobotta/hetzner-k3s">hetzner-k3s</a> -
|
||
A CLI tool to quickly create and manage Kubernetes clusters in Hetzner
|
||
Cloud</li>
|
||
<li><a href="https://github.com/mkdika/lff-cr">lff</a> - Simple and
|
||
straightforward large files finder utility in command line</li>
|
||
<li><a href="https://github.com/ryanprior/meet">meet</a> - Start a jitsi
|
||
meeting quickly from the comfort of your command line</li>
|
||
<li><a href="https://github.com/Blacksmoke16/oq">oq</a> - A performant,
|
||
and portable jq wrapper to facilitate the consumption and output of
|
||
formats other than JSON; using <a
|
||
href="https://github.com/stedolan/jq">jq</a> filters to transform the
|
||
data</li>
|
||
<li><a
|
||
href="https://github.com/TPei/progress_bar.cr">progress_bar.cr</a> - A
|
||
simple and customizable progress bar</li>
|
||
<li><a href="https://github.com/hutou/tablo">tablo</a> - A flexible
|
||
terminal table generator</li>
|
||
<li><a href="https://github.com/epoch/tallboy">tallboy</a> - Generate
|
||
ASCII character tables with support for spanning cells over multiple
|
||
columns</li>
|
||
</ul>
|
||
<h2 id="code-analysis-and-metrics">Code Analysis and Metrics</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/crystal-ameba/ameba">ameba</a> - A
|
||
static code analysis tool</li>
|
||
<li><a href="https://github.com/tamdaz/cruml">cruml</a> - A tool that
|
||
provides an UML class diagram generator for any Crystal projects</li>
|
||
<li><a
|
||
href="https://github.com/microgit-com/linguist.cr">linguist.cr</a> -
|
||
Using multiple ways to find programming language used in files, based on
|
||
Github’s Linguist</li>
|
||
</ul>
|
||
<h2 id="compression">Compression</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/naqvis/crystar">Crystar</a> - Readers
|
||
and writers of Tar archive format</li>
|
||
<li><a href="https://crystal-lang.org/api/Compress/Gzip.html">Gzip</a> -
|
||
readers and writers of gzip format (Crystal stdlib)</li>
|
||
<li><a href="https://github.com/BuonOmo/polylines.cr">polylines.cr</a> —
|
||
compression of series of coordinates</li>
|
||
<li><a href="https://github.com/naqvis/snappy">snappy</a> - Snappy
|
||
compression format reader/writer for Crystal</li>
|
||
<li><a href="https://crystal-lang.org/api/Compress/Zip.html">Zip</a> -
|
||
readers and writers of zip format (Crystal stdlib)</li>
|
||
<li><a href="https://crystal-lang.org/api/Compress/Zlib.html">Zlib</a> -
|
||
readers and writers of zlib format (Crystal stdlib)</li>
|
||
<li><a href="https://github.com/didactic-drunk/zstd.cr">zstd.cr</a> -
|
||
Bindings for <a href="https://github.com/facebook/zstd">Zstandard</a>
|
||
compression library</li>
|
||
</ul>
|
||
<h2 id="configuration">Configuration</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/gdotdesign/cr-dotenv">cr-dotenv</a> -
|
||
Loads .env file</li>
|
||
<li><a href="https://github.com/grottopress/envy">Envy</a> - Load
|
||
environment variables from YAML</li>
|
||
<li><a href="https://github.com/philnash/envyable.cr">envyable</a> - A
|
||
simple YAML to ENV config loader</li>
|
||
<li><a href="https://github.com/luckyframework/habitat">habitat</a> -
|
||
Type safe configuration for your classes and modules</li>
|
||
<li><a href="https://github.com/icyleaf/totem">totem</a> - Load and
|
||
parse a configuration in JSON, YAML, dotenv formats</li>
|
||
</ul>
|
||
<h2 id="converters">Converters</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/Sija/base62.cr">base62.cr</a> - Base62
|
||
encoder/decoder, well suited for url-shortening</li>
|
||
<li><a href="https://github.com/spider-gazelle/crunits">crunits</a> -
|
||
Tool for converting units of measure (miles to kilometers, celsius to
|
||
fahrenheit etc)</li>
|
||
<li><a href="https://github.com/crystal-money/money">money</a> -
|
||
Handling money and currency conversion with ease (almost complete port
|
||
of <a href="https://github.com/RubyMoney/money">RubyMoney</a>)</li>
|
||
<li><a href="https://github.com/straight-shoota/sass.cr">sass.cr</a> -
|
||
Compile SASS/SCSS to CSS (<a
|
||
href="https://github.com/sass/libsass/">libsass</a> binding)</li>
|
||
</ul>
|
||
<h2 id="cryptography">Cryptography</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/spider-gazelle/cmac">cmac</a> - Crystal
|
||
implementation of Cipher-based Message Authentication Code (CMAC)</li>
|
||
<li><a href="https://github.com/spider-gazelle/ed25519">ed25519</a> -
|
||
the Ed25519 elliptic curve public-key signature system described in [RFC
|
||
8032]</li>
|
||
<li><a href="https://github.com/konovod/monocypher.cr">monocypher.cr</a>
|
||
- Crystal wrapper for the Monocypher crypto library</li>
|
||
<li><a href="https://github.com/didactic-drunk/sodium.cr">sodium.cr</a>
|
||
- Crystal wrapper for the libsodium crypto API</li>
|
||
</ul>
|
||
<h2 id="data-formats">Data Formats</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/spider-gazelle/bindata">BinData</a> -
|
||
Binary data parser helper with an <a
|
||
href="https://en.wikipedia.org/wiki/Abstract_Syntax_Notation_One">ASN.1</a>
|
||
parser</li>
|
||
<li><a href="https://github.com/chris-huxtable/config.cr">config.cr</a>
|
||
- Easy to use configuration format parser</li>
|
||
<li><a href="https://github.com/c910335/crinder">crinder</a> - Class
|
||
based json renderer</li>
|
||
<li><a href="https://github.com/j8r/crystalizer">Crystalizer</a> -
|
||
(De)serialize any Crystal object; supporting JSON, YAML, and Byte
|
||
formats out of the box</li>
|
||
<li><a href="https://crystal-lang.org/api/CSV.html">CSV</a> - parsing
|
||
and generating for comma-separated values (Crystal stdlib)</li>
|
||
<li><a
|
||
href="https://github.com/chris-huxtable/front_matter.cr">front_matter.cr</a>
|
||
- Separates a files front matter from its content</li>
|
||
<li><a href="https://github.com/delef/geoip2.cr">geoip2.cr</a> - GeoIP2
|
||
reader</li>
|
||
<li><a href="https://github.com/NeuraLegion/har">HAR</a> - HAR (HTTP
|
||
Archive) parser</li>
|
||
<li><a href="https://crystal-lang.org/api/INI.html">INI</a> - INI file
|
||
parser (Crystal stdlib)</li>
|
||
<li><a href="https://crystal-lang.org/api/JSON.html">JSON</a> - parsing
|
||
and generating JSON documents (Crystal stdlib)</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/json-schema">json-schema</a> -
|
||
convert JSON serializable classes into a <a
|
||
href="https://json-schema.org/">JSON Schema</a> representation</li>
|
||
<li><a
|
||
href="https://github.com/anykeyh/json_on_steroids">JSON::OnSteroids</a>
|
||
- handle and mutate JSON document easily</li>
|
||
<li><a href="https://github.com/delef/maxminddb.cr">maxminddb.cr</a> -
|
||
MaxMindDB reader</li>
|
||
<li><a href="https://github.com/crystal-community/toml.cr">toml.cr</a> -
|
||
TOML parser</li>
|
||
<li><a href="https://crystal-lang.org/api/XML.html">XML</a> - parsing
|
||
and generating XML documents (Crystal stdlib)</li>
|
||
<li><a href="https://crystal-lang.org/api/YAML.html">YAML</a> - parsing
|
||
and generating YAML documents (Crystal stdlib)</li>
|
||
</ul>
|
||
<h2 id="data-generators">Data Generators</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/askn/faker">faker</a> - A library for
|
||
generating fake data</li>
|
||
<li><a href="https://github.com/splattael/hashids.cr">hashids.cr</a> - A
|
||
library to generate YouTube-like ids from one or many numbers</li>
|
||
<li><a href="https://github.com/wontruefree/prime">prime</a> - A prime
|
||
number generator</li>
|
||
</ul>
|
||
<h2 id="database-driversclients">Database Drivers/Clients</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/TechMagister/couchdb.cr">couchdb.cr</a>
|
||
- CouchDB client</li>
|
||
<li><a href="https://github.com/elbywan/cryomongo">cryomongo</a> -
|
||
MongoDB driver</li>
|
||
<li><a href="https://github.com/crystal-lang/crystal-db">crystal-db</a>
|
||
- Common db api</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/crystal-ldap">crystal-ldap</a> -
|
||
LDAP client</li>
|
||
<li><a
|
||
href="https://github.com/crystal-lang/crystal-mysql">crystal-mysql</a> -
|
||
MySQL connector for Crystal</li>
|
||
<li><a href="https://github.com/will/crystal-pg">crystal-pg</a> - A
|
||
Postgres driver</li>
|
||
<li><a
|
||
href="https://github.com/stefanwille/crystal-redis">crystal-redis</a> -
|
||
Full featured Redis client</li>
|
||
<li><a
|
||
href="https://github.com/kingsleyh/crystal-rethinkdb">crystal-rethinkdb</a>
|
||
- Driver for RethinkDB / RebirthDB</li>
|
||
<li><a
|
||
href="https://github.com/crystal-lang/crystal-sqlite3">crystal-sqlite3</a>
|
||
- SQLite3 bindings</li>
|
||
<li><a href="https://github.com/crystal-community/leveldb">leveldb</a> -
|
||
Crystal bindings for LevelDB</li>
|
||
<li><a href="https://github.com/maiha/rocksdb.cr">rocksdb.cr</a> -
|
||
RocksDB client</li>
|
||
<li><a href="https://github.com/yorci/surrealdb.cr">surrealdb.cr</a> -
|
||
Unoffical SurrealDB HTTP & Websocket Client</li>
|
||
</ul>
|
||
<h2 id="database-tools">Database Tools</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/vladfaust/migrate.cr">migrate</a> - A
|
||
simpler database migration tool with transactions</li>
|
||
</ul>
|
||
<h2 id="debugging">Debugging</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/Sija/backtracer.cr">backtracer.cr</a> -
|
||
Shard aiming to assist with parsing backtraces into a structured
|
||
form</li>
|
||
<li><a href="https://github.com/Sija/debug.cr">debug.cr</a> -
|
||
<code>debug!(…)</code> macro for <code>pp</code>-style debugging</li>
|
||
</ul>
|
||
<h2 id="dependency-injection">Dependency Injection</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/athena-framework/dependency-injection">Athena
|
||
Dependency Injection</a> - Robust dependency injection service container
|
||
framework</li>
|
||
<li><a href="https://github.com/funk-yourself/crystal-di">Crystal-DI</a>
|
||
- Lightweight DI Container</li>
|
||
<li><a href="https://github.com/jerometwell/hardwire">HardWire</a> - A
|
||
compile-time non-intrusive dependency injection system</li>
|
||
<li><a href="https://github.com/Bonemind/syringe">syringe</a> - A simple
|
||
and basic dependency injection shard for crystal</li>
|
||
</ul>
|
||
<h2 id="email">Email</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/luckyframework/carbon">carbon</a> - Fun,
|
||
testable, and adapter-based email library</li>
|
||
<li><a href="https://github.com/arcage/crystal-email">crystal-email</a>
|
||
- Simple e-mail sending library</li>
|
||
<li><a
|
||
href="https://git.sceptique.eu/Sceptique/CrystalEmail">CrystalEmail</a>
|
||
- A RFC compliant Email validator</li>
|
||
<li><a
|
||
href="https://github.com/dlanileonardo/sendgrid.cr">sendgrid.cr</a> -
|
||
Simple Sendgrid Client</li>
|
||
</ul>
|
||
<h2 id="environment-management">Environment Management</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/marciogm/asdf-crystal">asdf-crystal</a>
|
||
- Plugin for asdf version manager</li>
|
||
<li><a href="https://github.com/crenv/crenv">crenv</a> - Crystal version
|
||
manager</li>
|
||
<li><a href="https://github.com/maiha/rcm.cr">rcm.cr</a> - Redis Cluster
|
||
Manager</li>
|
||
<li><a href="https://github.com/yanecc/vfox-crystal">vfox-crystal</a> -
|
||
Plugin for vfox version manager</li>
|
||
</ul>
|
||
<h2 id="examples-and-funny-stuff">Examples and funny stuff</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/gdonald/blackjack-cr">blackjack-cr</a> -
|
||
Console Blackjack</li>
|
||
<li><a
|
||
href="https://github.com/crystal-community/crystal-patterns">crystal-patterns</a>
|
||
- Examples of GOF patters</li>
|
||
<li><a href="https://github.com/vladfaust/crystalworld">crystalworld</a>
|
||
- <a href="https://realworld.io">realworld.io</a> back-end API
|
||
implementation</li>
|
||
<li><a href="https://github.com/exercism/crystal">exercism-crystal</a> -
|
||
Exercism exercises</li>
|
||
<li><a href="https://github.com/maiha/try.cr">try.cr</a> - Try
|
||
monad</li>
|
||
</ul>
|
||
<h2 id="framework-components">Framework Components</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/athena-framework/event-dispatcher">Athena Event
|
||
Dispatcher</a> - A Mediator and Observer pattern event library</li>
|
||
<li><a href="https://github.com/athena-framework/negotiation">Athena
|
||
Negotiation</a> - Framework agnostic content negotiation library</li>
|
||
<li><a
|
||
href="https://github.com/creadone/device_detector">device_detector</a> -
|
||
Shard for detect device by user agent string</li>
|
||
<li><a href="https://github.com/crystal-loot/exception_page">Exception
|
||
Page</a> - An exceptional exception page for Crystal web libraries and
|
||
frameworks</li>
|
||
<li><a href="https://github.com/graphql-crystal/graphql">graphql</a> -
|
||
Type-safe <a href="http://graphql.org">GraphQL</a> server
|
||
implementation</li>
|
||
<li><a
|
||
href="https://github.com/ziprandom/graphql-crystal">graphql-crystal</a>
|
||
- <a href="http://graphql.org">GraphQL</a> implementation</li>
|
||
<li><a href="https://github.com/kemalcr/kemal-session">kemal-session</a>
|
||
- Session handler for Kemal</li>
|
||
<li><a href="https://github.com/awcrotwell/mochi">mochi</a> -
|
||
Authentication shard inspired by Devise supporting: Authenticable,
|
||
Confirmable, Invitable & more</li>
|
||
<li><a href="https://github.com/awcrotwell/motion.cr">motion.cr</a> -
|
||
Object oriented frontend library for Amber</li>
|
||
<li><a href="https://github.com/msa7/multi_auth">multi-auth</a> -
|
||
Standardized multi-provider OAuth2 authentication (inspired by
|
||
omniauth)</li>
|
||
<li><a href="https://github.com/ilanusse/praetorian">praetorian</a> -
|
||
Minimalist authorization library inspired by Pundit</li>
|
||
<li><a href="https://github.com/grottopress/shield">Shield</a> -
|
||
Comprehensive security for <em>Lucky</em> framework</li>
|
||
<li><a href="https://github.com/jetrockets/shrine.cr">shrine.cr</a> -
|
||
File Attachment toolkit for Crystal applications. Heavily inspired by
|
||
Shrine for Ruby</li>
|
||
<li><a href="https://github.com/protoncr/tourmaline">tourmaline</a> -
|
||
Telegram bot framework with an API loosely based on <a
|
||
href="https://telegraf.js.org/">telegraf.js</a></li>
|
||
</ul>
|
||
<h2 id="game-development">Game Development</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/oprypin/crsfml">CrSFML</a> - Bindings to
|
||
<a href="https://www.sfml-dev.org/">SFML</a> multimedia/game
|
||
library</li>
|
||
<li><a
|
||
href="https://github.com/oprypin/crystal-chipmunk">crystal-chipmunk</a>
|
||
- Bindings to <a href="http://chipmunk-physics.net/">Chipmunk</a>, a
|
||
fast and lightweight 2D game physics library</li>
|
||
<li><a
|
||
href="https://github.com/oprypin/crystal-imgui-sfml">crystal-imgui-sfml</a>
|
||
- Bindings to integrate <a href="https://github.com/ocornut/imgui">Dear
|
||
ImGui</a> into an <a href="https://www.sfml-dev.org/">SFML</a>
|
||
project</li>
|
||
<li><a href="https://github.com/spoved/entitas.cr">entitas.cr</a> - A
|
||
Entity Component System Framework for Crystal</li>
|
||
<li><a href="https://github.com/konovod/myecs">MyECS</a> - A Sparse
|
||
Entity Component System Framework for Crystal</li>
|
||
<li><a href="https://github.com/sol-vin/raylib-cr">Raylib-cr</a> -
|
||
Direct bindings to <a href="https://raylib.com">Raylib</a>, which
|
||
supports Linux, Windows, and Mac</li>
|
||
<li><a
|
||
href="https://github.com/Hadeweka/SDL-Crystal-Bindings">SDL-Crystal-Bindings</a>
|
||
- Direct (unsafe) bindings to <a
|
||
href="https://www.libsdl.org/">SDL2</a>, intended for writing own game
|
||
libraries</li>
|
||
</ul>
|
||
<h2 id="gui-development">GUI Development</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/oprypin/crystal-imgui">crystal-imgui</a>
|
||
- Bindings to <a href="https://github.com/ocornut/imgui">Dear ImGui</a>,
|
||
an immediate-mode graphical UI library</li>
|
||
<li><a href="https://github.com/hugopl/gtk4.cr">GTK4.cr</a> - Bindings
|
||
for <a href="https://docs.gtk.org/gtk4/overview.html">GTK4</a> with
|
||
Crystalized API</li>
|
||
<li><a href="https://github.com/grkek/iu">Iu</a> - UI framework based on
|
||
the <a href="https://github.com/Fusion/libui.cr">Fusion/libui.cr</a>
|
||
library, with custom elements and modified bindings from <a
|
||
href="https://github.com/hedron-crystal/hedron">hedron-crystal/hedron</a></li>
|
||
<li><a href="https://ultimate-gtk4-crystal-guide.geopjr.dev/">Ultimate
|
||
GTK4 Crystal Guide</a> - Learn how to create premium GTK4 apps in
|
||
Crystal</li>
|
||
</ul>
|
||
<h2 id="html-builders">HTML Builders</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/gunbolt/blueprint">blueprint</a> - Write
|
||
reusable and testable HTML templates in plain Crystal</li>
|
||
<li><a
|
||
href="https://github.com/westonganger/form_builder.cr">form_builder.cr</a>
|
||
- Dead simple HTML form builder for Crystal with built-in support for
|
||
many popular UI libraries such as Bootstrap</li>
|
||
<li><a href="https://github.com/sbsoftware/to_html.cr">to_html</a> - The
|
||
fastest HTML builder engine for Crystal</li>
|
||
<li><a href="https://github.com/shootingfly/water">Water</a> - A library
|
||
for writing HTML in plain Crystal</li>
|
||
</ul>
|
||
<h2 id="htmlxml-parsing">HTML/XML Parsing</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/aristotelesbr/docx_cr_converter">docx_cr_converter</a>
|
||
- parse DOCX Word</li>
|
||
<li><a href="https://github.com/kostya/lexbor">lexbor</a> - Fast HTML5
|
||
Parser that includes CSS selectors</li>
|
||
</ul>
|
||
<h2 id="http">HTTP</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/cable-cr/cable">Cable</a> - An
|
||
ActionCable “port” to Crystal, framework agnostic, 100% compatible with
|
||
the ActionCable JS Client</li>
|
||
<li><a href="https://github.com/crystal-community/cossack">cossack</a> -
|
||
Simple flexible HTTP client</li>
|
||
<li><a href="https://github.com/mamantoha/crest">crest</a> - Simple HTTP
|
||
and REST client, inspired by the Ruby’s RestClient gem</li>
|
||
<li><a href="https://github.com/porras/crul">crul</a> - Command line
|
||
HTTP client</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/digest-auth">digest-auth</a> -
|
||
Digest authentication</li>
|
||
<li><a href="https://github.com/icyleaf/halite">halite</a> - Crystal
|
||
HTTP Requests with a chainable REST API, built-in sessions and
|
||
loggers</li>
|
||
<li><a
|
||
href="https://github.com/vladfaust/http-multiserver.cr">http-multiserver.cr</a>
|
||
- Mounting multiple servers via routes (a.k.a. URL mapping)</li>
|
||
<li><a
|
||
href="https://github.com/vladfaust/http-params-serializable">http-params-serializable</a>
|
||
- HTTP params (de)serialization, applicable to URL queries and
|
||
URL-encoded forms</li>
|
||
<li><a
|
||
href="https://github.com/rogeriozambon/http-protection">http-protection</a>
|
||
- Protection against typical web attacks</li>
|
||
<li><a href="https://github.com/ysbaddaden/http2">http2</a> - HTTP/2
|
||
Protocol Implementation</li>
|
||
<li><a
|
||
href="https://crystal-lang.org/api/HTTP/Client.html">HTTP::Client</a> -
|
||
HTTP client (Crystal stdlib)</li>
|
||
<li><a
|
||
href="https://crystal-lang.org/api/HTTP/Server.html">HTTP::Server</a> -
|
||
HTTP server (Crystal stdlib)</li>
|
||
<li><a
|
||
href="https://crystal-lang.org/api/HTTP/WebSocket.html">HTTP::WebSocket</a>
|
||
- HTTP WebSocket client (Crystal stdlib)</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/link-header">link-header</a> -
|
||
HTTP Link Header Parser</li>
|
||
<li><a href="https://github.com/spider-gazelle/ntlm">ntlm</a> - NTLM
|
||
authentication</li>
|
||
<li><a
|
||
href="https://github.com/nbulaj/proxy-fetcher.cr">proxy-fetcher.cr</a> -
|
||
Proxy lists fetching & validating library</li>
|
||
<li><a href="https://github.com/y2k2mt/sse.cr">sse.cr</a> - <a
|
||
href="https://html.spec.whatwg.org/multipage/server-sent-events.html">Server-Sent
|
||
Events</a> client</li>
|
||
</ul>
|
||
<h2 id="image-processing">Image processing</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/celestinecr/celestine">celestine</a> -
|
||
Create SVG images using a DSL</li>
|
||
<li><a href="https://github.com/spider-gazelle/ffmpeg">ffmpeg</a> -
|
||
FFmpeg bindings that works with StumpyPNG to extract frames</li>
|
||
<li><a href="https://github.com/phenopolis/pluto">Pluto</a> - A fast and
|
||
convenient image processing library</li>
|
||
<li><a href="https://github.com/stumpycr/stumpy_png">stumpy_png</a> -
|
||
Read and write PNG images</li>
|
||
</ul>
|
||
<h2 id="implementationscompilers">Implementations/Compilers</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/charly-lang">charly</a> - Charly
|
||
Programming Language</li>
|
||
<li><a href="https://github.com/ziprandom/cltk">cltk</a> - A crystal
|
||
port of the Ruby Language Toolkit</li>
|
||
<li><a href="https://github.com/rhysd/Crisp">crisp</a> - Lisp dialect
|
||
implemented with Crystal</li>
|
||
<li><a href="https://github.com/LinCAS-lang">LinCAS-lang</a> - A
|
||
programming language for scientific computation</li>
|
||
<li><a href="https://github.com/mint-lang/mint">mint-lang</a> - A
|
||
refreshing programming language for the front-end web</li>
|
||
<li><a href="https://github.com/myst-lang/">myst-lang</a> - A practical,
|
||
dynamic language designed to be written and understood as easily and
|
||
efficiently as possible</li>
|
||
<li><a href="https://github.com/novika-lang/novika">novika</a> - A
|
||
free-form, moldable, interpreted programming language</li>
|
||
<li><a href="https://github.com/runic-lang">runic-lang</a> - In-design
|
||
toy language</li>
|
||
</ul>
|
||
<h2 id="internationalization">Internationalization</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/crystal-i18n/i18n">crystal-i18n</a> - An
|
||
internationalization library inspired by Ruby-I18n</li>
|
||
<li><a href="https://github.com/vladfaust/i18n.cr">i18n.cr</a> -
|
||
Internationalization shard</li>
|
||
<li><a href="https://github.com/syeopite/lens">Lens</a> - A multiformat
|
||
internationalization (i18n) shard for Crystal. Supports Gettext, Ruby
|
||
YAML, etc.</li>
|
||
<li><a href="https://github.com/wout/rosetta">Rosetta</a> - A blazing
|
||
fast internationalization (i18n) library with compile-time key lookup
|
||
supporting YAML and JSON formats</li>
|
||
</ul>
|
||
<h2 id="logging-and-monitoring">Logging and monitoring</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/spoved/crafana.cr">crafana</a> - A <a
|
||
href="https://grafana.com/">Grafana</a> library to help autogenerate
|
||
dashboards</li>
|
||
<li><a
|
||
href="https://github.com/didactic-drunk/fiber_metrics.cr">fiber_metrics.cr</a>
|
||
- Track run time, wait time, or memory allocations per
|
||
<code>Fiber</code>, method or block</li>
|
||
<li><a href="https://crystal-lang.org/api/Log.html">Log</a> - logging
|
||
utility (Crystal stdlib)</li>
|
||
<li><a href="https://github.com/miketheman/statsd.cr">statsd.cr</a> - <a
|
||
href="https://github.com/etsy/statsd">Statsd</a> client library</li>
|
||
</ul>
|
||
<h2 id="machine-learning">Machine Learning</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/drhuffman12/ai4cr">ai4cr</a> -
|
||
Artificial Intelligence (based on
|
||
https://github.com/SergioFierens/ai4r)</li>
|
||
<li><a href="https://github.com/cadmiumcr/cadmium">Cadmium</a> - NLP
|
||
library based heavily on <a
|
||
href="https://github.com/NaturalNode/natural">natural</a></li>
|
||
<li><a
|
||
href="https://github.com/NeuraLegion/crystal-fann">crystal-fann</a> -
|
||
FANN (Fast Artifical Neural Network) binding</li>
|
||
<li><a href="https://github.com/toddsundsted/mxnet.cr">mxnet.cr</a> -
|
||
Bindings for <a
|
||
href="https://mxnet.incubator.apache.org/">MXNet</a></li>
|
||
<li><a href="https://github.com/NeuraLegion/shainet">shainet</a> -
|
||
SHAInet (Neural Network in pure crystal)</li>
|
||
</ul>
|
||
<h2 id="markdowntext-processors">Markdown/Text Processors</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/amauryt/cr-cmark-gfm">cr-cmark-gfm</a> -
|
||
Crystal C bindings for cmark-gfm to work with Commonmark and Github
|
||
Flavored Markdown</li>
|
||
<li><a href="https://github.com/icyleaf/markd">markd</a> - Yet another
|
||
markdown parser built for speed, Compliant to CommonMark
|
||
specification</li>
|
||
</ul>
|
||
<h2 id="misc">Misc</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/veelenga/aasm.cr">aasm.cr</a> - Easy to
|
||
use finite state machine for Crystal classes</li>
|
||
<li><a href="https://github.com/Sija/any_hash.cr">any_hash.cr</a> -
|
||
Recursive Hash with better JSON::Any included</li>
|
||
<li><a href="https://github.com/Anyolite/anyolite">anyolite</a> - Full
|
||
mruby interpreter with simple bindings, allowing for easy scripting
|
||
support in projects</li>
|
||
<li><a
|
||
href="https://github.com/vinibrsl/burocracia.cr">burocracia.cr</a> -
|
||
burocracia.cr the dependecyless shard to validate, generate and format
|
||
Brazilian burocracias such as CPF, CNPJ and CEP</li>
|
||
<li><a href="https://github.com/vladfaust/callbacks.cr">callbacks</a> -
|
||
Expressive callbacks module</li>
|
||
<li><a
|
||
href="https://github.com/TPei/circuit_breaker">circuit_breaker</a> -
|
||
Implementation of the circuit breaker pattern</li>
|
||
<li><a href="https://github.com/firejox/CrSignals">CrSignals</a> -
|
||
Signals/slots notification library</li>
|
||
<li><a
|
||
href="https://github.com/DanSnow/crystal-binary_parser">crystal-binary_parser</a>
|
||
- Binary parser</li>
|
||
<li><a
|
||
href="https://github.com/isaced/crystal-web-framework-stars">crystal-web-framework-stars</a>
|
||
- Web frameworks for Crystal, most starred on Github</li>
|
||
<li><a href="https://github.com/dhruvrajvanshi/crz">crz</a> - Functional
|
||
programming library</li>
|
||
<li><a href="https://github.com/wyhaines/defined.cr">defined</a> -
|
||
macros for conditional compilation based on constant definitions,
|
||
version requirements, or environment variable settings</li>
|
||
<li><a href="https://github.com/veelenga/emoji.cr">emoji.cr</a> - Emoji
|
||
library</li>
|
||
<li><a href="https://github.com/Sija/gphoto2-web.cr">gphoto2-web.cr</a>
|
||
- Web API for libgphoto2</li>
|
||
<li><a href="https://github.com/lucaong/immutable">immutable</a> -
|
||
Implementation of thread-safe, persistent, immutable collections</li>
|
||
<li><a href="https://github.com/toddsundsted/iterm2">iterm2</a> -
|
||
Display images within the terminal using the ITerm2 Inline Images
|
||
Protocol</li>
|
||
<li><a href="https://github.com/alex-lairan/monads">monads</a> - Monad
|
||
implementation</li>
|
||
<li><a href="https://github.com/TPei/observable">observable</a> -
|
||
Implementation of the observer pattern</li>
|
||
<li><a href="https://github.com/spider-gazelle/pinger">pinger</a> - Ping
|
||
IP addresses and DNS entries without requiring sudo</li>
|
||
<li><a href="https://github.com/jimm/crystal_port_midi">port_midi</a> -
|
||
Crystal C bindings for the PortMIDI cross-platform MIDI I/O library</li>
|
||
<li><a href="https://github.com/Sija/retriable.cr">retriable.cr</a> -
|
||
Simple DSL to retry failed code blocks</li>
|
||
<li><a href="https://github.com/crystal-china/sentry">sentry</a> -
|
||
Build/Runs your crystal application, watches files, and
|
||
rebuilds/restarts app on file changes.</li>
|
||
<li><a
|
||
href="https://github.com/wyhaines/serf-handler.cr">serf-handler.cr</a> -
|
||
Framework for building Serf handlers, with a suite of useful builtin
|
||
capabilities</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/simple_retry">simple_retry</a> -
|
||
Simple tool for retrying failed code blocks</li>
|
||
<li><a href="https://github.com/NeuraLegion/sslscan.cr">sslscan.cr</a> -
|
||
Crystal shard wrapping the rbsec/sslscan utility</li>
|
||
<li><a
|
||
href="https://github.com/anicholson/crystal-version-tools">version_tools</a>
|
||
- Version-dependent behaviour, specified at compile-time</li>
|
||
<li><a href="https://github.com/NeuraLegion/wafalyzer">wafalyzer</a> -
|
||
Web Application Firewall (WAF) Detector - shard + cli</li>
|
||
<li><a href="https://github.com/szTheory/zaru_crystal">zaru_crystal</a>
|
||
- Filename sanitization</li>
|
||
</ul>
|
||
<h2 id="network-protocols">Network Protocols</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/cloudamqp/amqp-client.cr">amqp-client.cr</a> -
|
||
AMQP 0-9.1, a messaging protocol, implemented by eg. RabbitMQ</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/connect-proxy">connect-proxy</a>
|
||
- Connect method style of HTTP tunnelling / HTTP proxy</li>
|
||
<li><a href="https://github.com/naqvis/cr-xmpp">cr-xmpp</a> -
|
||
XMPP/Jabber Library</li>
|
||
<li><a href="https://github.com/Meoowww/Crirc">Crirc</a> - IRC protocol
|
||
implementation (Client, Server, Bots)</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/crystal-bacnet">crystal-bacnet</a>
|
||
- BACnet protocol implementation with BACnet/IP client</li>
|
||
<li><a
|
||
href="https://github.com/foi/crystal-json-socket">crystal-json-socket</a>
|
||
- JSON-socket client & server implementation. Inspired by and
|
||
compatible with <a
|
||
href="https://github.com/sebastianseilund/node-json-socket/">node-json-socket</a>
|
||
and <a
|
||
href="https://github.com/foi/ruby-json-socket">ruby-json-socket</a></li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/crystal-mqtt">crystal-mqtt</a> -
|
||
A MQTT client</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/crystal-snmp">crystal-snmp</a> -
|
||
An SNMP implementation with version 1, 2c and 3 support</li>
|
||
<li><a href="https://github.com/spider-gazelle/dns">dns</a> - DNS
|
||
protocol implementation and resolver</li>
|
||
<li><a href="https://github.com/RX14/fast_irc.cr">fast_irc.cr</a> - Fast
|
||
IRC parser/generator</li>
|
||
<li><a href="https://github.com/crystal-community/jwt">jwt</a> -
|
||
Implementation of JWT (JSON Web Token)</li>
|
||
<li><a href="https://github.com/spider-gazelle/knx">knx</a> - KNX
|
||
protocol implementation supporting multicast, unicast and TCP/IP
|
||
tunnelling</li>
|
||
<li><a href="https://github.com/spider-gazelle/mdns">mDNS</a> - DNS
|
||
Service Discovery and multicast DNS</li>
|
||
<li><a
|
||
href="https://github.com/84codes/mqtt-client.cr">mqtt-client.cr</a> - A
|
||
fast and lightweight MQTT client</li>
|
||
<li><a
|
||
href="https://github.com/crystal-community/msgpack-crystal">msgpack-crystal</a>
|
||
- MessagePack library</li>
|
||
<li><a href="https://crystal-lang.org/api/OAuth.html">OAuth</a> - OAuth
|
||
consumer (Crystal stdlib)</li>
|
||
<li><a href="https://crystal-lang.org/api/OAuth2.html">OAuth2</a> -
|
||
OAuth2 client (Crystal stdlib)</li>
|
||
<li><a href="https://crystal-lang.org/api/OpenSSL.html">OpenSSL</a> -
|
||
bindings to libssl (Crystal stdlib)</li>
|
||
<li><a href="https://github.com/kostya/simple_rpc">simple_rpc</a> - RPC
|
||
Server and Client for Crystal. Implements msgpack-rpc protocol</li>
|
||
<li><a href="https://github.com/spider-gazelle/stomp">stomp</a> - STOMP
|
||
protocol</li>
|
||
<li><a href="https://github.com/spider-gazelle/telnet.cr">telnet.cr</a>
|
||
- Telnet protocol</li>
|
||
<li><a
|
||
href="https://git.sceptique.eu/Sceptique/transfer_more">transfer_more</a>
|
||
- Clone of transfer.sh to uploads files</li>
|
||
</ul>
|
||
<h2 id="networking">Networking</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/Sija/ipaddress.cr">ipaddress.cr</a> -
|
||
Library to handle IPv4 and IPv6 addresses</li>
|
||
<li><a href="https://github.com/automatico/mac-address">mac-address</a>
|
||
- Library for working with MAC addresses</li>
|
||
</ul>
|
||
<h2 id="ormodm-extensions">ORM/ODM Extensions</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/luckyframework/avram">avram</a> - A
|
||
database wrapper for reading, writing, and migrating Postgres
|
||
databases</li>
|
||
<li><a href="https://github.com/anykeyh/clear">clear</a> - ORM
|
||
specialized to PostgreSQL only but with advanced features</li>
|
||
<li><a href="https://github.com/Crecto/crecto">crecto</a> - Database
|
||
wrapper, based on Ecto</li>
|
||
<li><a href="https://github.com/amberframework/granite">granite</a> -
|
||
ORM for Postgres, Mysql, Sqlite</li>
|
||
<li><a href="https://github.com/imdrasil/jennifer.cr">jennifer.cr</a> -
|
||
Active Record pattern implementation with flexible query chainable
|
||
builder and migration system</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/rethinkdb-orm">rethinkdb-orm</a>
|
||
- ORM for RethinkDB / RebirthDB</li>
|
||
</ul>
|
||
<h2 id="package-management">Package Management</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/crystal-lang/shards">shards</a> -
|
||
Dependency manager for the Crystal</li>
|
||
</ul>
|
||
<h2 id="processes-and-threads">Processes and Threads</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/anykeyh/await_async">await_async</a> -
|
||
Add keywords await & async in Crystal Lang</li>
|
||
<li><a
|
||
href="https://github.com/didactic-drunk/concurrent.cr">concurrent.cr</a>
|
||
- Simplified concurrency using streams/pipelines, waitgroups,
|
||
semaphores, smores and more</li>
|
||
<li><a href="https://github.com/tbrand/neph">neph</a> - A modern command
|
||
line job processor that can execute jobs concurrently</li>
|
||
<li><a href="https://github.com/spider-gazelle/promise">promise</a> - A
|
||
Promise implementation with type inference</li>
|
||
<li><a href="https://github.com/marghidanu/werk">werk</a> - Dead simple
|
||
task runner with concurrent support, ideal for local CI</li>
|
||
</ul>
|
||
<h2 id="project-generators">Project Generators</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/crystal-lang/crystal_lib">crystal_lib</a> -
|
||
Automatic binding generator for native libraries</li>
|
||
<li><a href="https://github.com/jwoertink/fez">fez</a> - A Kemal
|
||
application generator</li>
|
||
<li><a href="https://github.com/olbat/libgen">libgen</a> - Automatic
|
||
bindings generator configured using JSON/YAML files</li>
|
||
</ul>
|
||
<h2 id="queues-and-messaging">Queues and Messaging</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/BT-OpenSource/crafka">crafka</a> -
|
||
Apache Kafka library utilizing <code>librdkafka</code></li>
|
||
<li><a href="https://github.com/mosquito-cr/mosquito/">mosquito</a> -
|
||
Redis backed periodic and ad hoc job processing</li>
|
||
<li><a href="https://github.com/nats-io/nats.cr">NATS.io</a> - NATS
|
||
client</li>
|
||
<li><a href="https://github.com/mperham/sidekiq.cr">sidekiq.cr</a> -
|
||
Simple, efficient job processing</li>
|
||
</ul>
|
||
<h2 id="routing">Routing</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/obsidian/orion">orion</a> - A minimal,
|
||
rails-esque routing library</li>
|
||
<li><a href="https://github.com/tbrand/router.cr">router.cr</a> -
|
||
Minimum but powerful http router for HTTP::Server</li>
|
||
</ul>
|
||
<h2 id="scheduling">Scheduling</h2>
|
||
<ul>
|
||
<li><a href="https://gitlab.com/crystallabs/crystime">crystime</a> -
|
||
Advanced time, calendar, schedule, and remind library</li>
|
||
<li><a
|
||
href="https://github.com/hugoabonizio/schedule.cr">schedule.cr</a> - Run
|
||
periodic tasks</li>
|
||
<li><a href="https://github.com/spider-gazelle/tasker">tasker</a> - A
|
||
high precision scheduler including timezone aware cron jobs</li>
|
||
</ul>
|
||
<h2 id="science-and-data-analysis">Science and Data analysis</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/nin93/alea">alea</a> - Repeatable
|
||
sampling, CDF and other utilities to work with probability
|
||
distributions</li>
|
||
<li><a href="https://github.com/toddsundsted/ishi">ishi</a> - Graph
|
||
plotting package with a small API and sensible defaults powered by
|
||
gnuplot</li>
|
||
<li><a href="https://github.com/konovod/linalg">linalg</a> - Linear
|
||
algebra library inspired by MATLAB and SciPy.linalg</li>
|
||
<li><a href="https://github.com/crystal-data/num.cr">num.cr</a> -
|
||
Numerical computing library supporting N-Dimensional data</li>
|
||
<li><a href="https://github.com/RX14/predict.cr">predict.cr</a> -
|
||
Satellite prediction library using the sgp4 model</li>
|
||
<li><a href="https://github.com/RomainFranceschini/quartz">quartz</a> -
|
||
Modeling and simulation framework</li>
|
||
</ul>
|
||
<h2 id="search">Search</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/imdrasil/hermes.cr">hermes</a> - Data
|
||
Mapper pattern implementation for ElastiSearch</li>
|
||
</ul>
|
||
<h2 id="serverless-computing">Serverless Computing</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/TPei/crystal_openfaas/">crystal_openfaas</a> -
|
||
Template to enable crystal as first class citizens in OpenFaaS</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/secrets-env">secrets-env</a> -
|
||
Extends ENV module to read values injected by docker / kubernetes
|
||
secrets and other orchestration tools</li>
|
||
</ul>
|
||
<h2 id="system">System</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/schovi/baked_file_system">baked_file_system</a>
|
||
- Virtual file system implementation</li>
|
||
<li><a href="https://github.com/crystal-community/hardware">hardware</a>
|
||
- Get CPU, Memory and Network informations of the running OS and its
|
||
processes</li>
|
||
</ul>
|
||
<h2 id="task-management">Task management</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/axvm/cake">cake</a> - Production-ready
|
||
Make-like utility tool</li>
|
||
<li><a href="https://github.com/imdrasil/sam.cr">sam</a> - Another one
|
||
Rake-like task manager with namespacing and arguments system</li>
|
||
</ul>
|
||
<h2 id="template-engine">Template Engine</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/straight-shoota/crinja">crinja</a> - An
|
||
implementation of the <a href="http://jinja.pocoo.org/">Jinja2 template
|
||
engine</a></li>
|
||
<li><a href="https://github.com/MakeNowJust/crustache">crustache</a> -
|
||
<a href="https://mustache.github.io">{{Mustache}}</a> for Crystal</li>
|
||
<li><a href="https://crystal-lang.org/api/ECR.html">ECR (Embedded
|
||
Crystal)</a> - compile time template language which uses plain crystal
|
||
expressions (Crystal stdlib)</li>
|
||
<li><a href="https://github.com/shootingfly/jbuilder">Jbuilder</a> -
|
||
Generate JSON objects with a Builder-style DSL, inspired by
|
||
jbuilder</li>
|
||
<li><a href="https://github.com/jeromegn/kilt">Kilt</a> - Abstraction
|
||
layer for template engines</li>
|
||
<li><a href="https://github.com/jeromegn/slang">Slang</a> - Lightweight,
|
||
terse, templating language inspired by Ruby’s Slim</li>
|
||
<li><a href="https://github.com/mosop/teeplate">teeplate</a> - A library
|
||
for rendering multiple template files</li>
|
||
</ul>
|
||
<h2 id="testing">Testing</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/athena-framework/spec">Athena Spec</a> -
|
||
Common/helpful <a href="https://crystal-lang.org/api/Spec.html">Spec</a>
|
||
compliant testing utilities</li>
|
||
<li><a href="https://github.com/emancu/crotest">crotest</a> - A tiny and
|
||
simple test framework</li>
|
||
<li><a href="https://github.com/hanneskaeufler/crytic">crytic</a> -
|
||
Mutation testing framework</li>
|
||
<li><a href="https://github.com/crystal-china/hashr">hashr</a> - A tiny
|
||
class makes test on JSON response easier</li>
|
||
<li><a href="https://github.com/luckyframework/lucky_flow">LuckyFlow</a>
|
||
- Automated browser tests similar to Capybara</li>
|
||
<li><a href="https://github.com/c910335/mass-spec">mass-spec</a> - Web
|
||
API testing library</li>
|
||
<li><a href="https://github.com/Ragmaanir/microtest">microtest</a> -
|
||
Small opinionated testing library focusing on power asserts</li>
|
||
<li><a href="https://github.com/ysbaddaden/minitest.cr">minitest.cr</a>
|
||
- Library for unit tests and assertions</li>
|
||
<li><a href="https://github.com/waterlink/mocks.cr">mocks.cr</a> -
|
||
Mocking library for Crystal</li>
|
||
<li><a
|
||
href="https://github.com/crystal-loot/selenium.cr">selenium.cr</a> -
|
||
Selenium client for interacting with web pages for browser
|
||
automation</li>
|
||
<li><a href="https://crystal-lang.org/api/Spec.html">Spec</a> - spec
|
||
framework (Crystal stdlib)</li>
|
||
<li><a href="https://gitlab.com/arctic-fox/spectator">spectator</a> -
|
||
Feature rich spec framework that uses the modern expect syntax</li>
|
||
<li><a
|
||
href="https://github.com/crystal-community/timecop.cr">timecop.cr</a> -
|
||
Library for mocking with <code>Time.now</code>. Inspired by the <a
|
||
href="https://github.com/travisjeffery/timecop">timecop ruby
|
||
gem</a></li>
|
||
<li><a href="https://github.com/spoved/vcr.cr">vcr</a> - A HTTP capture
|
||
and replay implementation for crystal</li>
|
||
<li><a
|
||
href="https://github.com/bwilczek/webdriver_pump">webdriver_pump</a> -
|
||
Page Object library. Inspired by Ruby’s <a
|
||
href="https://github.com/bwilczek/watir_pump">WatirPump</a></li>
|
||
<li><a href="https://github.com/manastech/webmock.cr">webmock.cr</a> -
|
||
Library for stubbing <code>HTTP::Client</code> requests</li>
|
||
</ul>
|
||
<h2 id="third-party-apis">Third-party APIs</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/rjnienaber/amazonite">amazonite</a> - An
|
||
unofficial SDK supporting popular AWS APIs</li>
|
||
<li><a
|
||
href="https://github.com/beanieboi/aws-signer.cr">aws-signer.cr</a> -
|
||
This library signs your HTTP requests using AWS v4</li>
|
||
<li><a href="https://github.com/taylorfinnell/awscr-s3">awscr-s3</a> -
|
||
AWS S3 interface</li>
|
||
<li><a
|
||
href="https://github.com/taylorfinnell/awscr-signer">awscr-signer</a> -
|
||
Sign HTTP::Request objects and generate presigned post forms</li>
|
||
<li><a
|
||
href="https://github.com/rogerwelin/crystal-consul">crystal-consul</a> -
|
||
Consul API client</li>
|
||
<li><a
|
||
href="https://github.com/sb89/crystal-darksky">crystal-darksky</a> -
|
||
Wrapper for the <a href="https://darksky.net">Dark Sky</a> API</li>
|
||
<li><a href="https://github.com/sb89/crystal-swapi">crystal-swapi</a> -
|
||
Star Wars API (SWAPI) wrapper</li>
|
||
<li><a
|
||
href="https://github.com/manastech/crystal_slack">crystal_slack</a> - A
|
||
tool that parses Slack slash commands or send incoming web hooks</li>
|
||
<li><a href="https://github.com/mccallofthewild/gdax">GDAX</a> - GDAX
|
||
REST and WebSocket API Wrapper with request signing</li>
|
||
<li><a href="https://github.com/icyleaf/gitlab.cr">gitlab.cr</a> -
|
||
GitLab API wrapper</li>
|
||
<li><a href="https://github.com/PlaceOS/google">google</a> - Google API
|
||
wrapper</li>
|
||
<li><a href="https://github.com/toddsundsted/host_meta">host_meta</a> -
|
||
A Web Host Metadata (https://tools.ietf.org/html/rfc6415) client</li>
|
||
<li><a
|
||
href="https://github.com/spoved/kube-client.cr">kube-client.cr</a> -
|
||
Kubernetes API Client</li>
|
||
<li><a
|
||
href="https://github.com/petoem/mixpanel-crystal">mixpanel-crystal</a> -
|
||
A library for sending events to Mixpanel</li>
|
||
<li><a href="https://github.com/wout/mollie.cr">mollie.cr</a> - <a
|
||
href="https://www.mollie.com/en/">Mollie</a> Payments API wrapper
|
||
(Creditcard, PayPal, Apple Pay, Sofort, Klarna, …)</li>
|
||
<li><a href="https://github.com/PlaceOS/office365">office365</a> -
|
||
Microsoft Graph API wrapper</li>
|
||
<li><a href="https://github.com/oz/pinboard.cr">pinboard.cr</a> - <a
|
||
href="https://pinboard.in">Pinboard</a> API</li>
|
||
<li><a href="https://github.com/sija/raven.cr">raven.cr</a> - Raven is a
|
||
client for <a href="https://github.com/getsentry/sentry">Sentry</a></li>
|
||
<li><a href="https://github.com/confact/stripe.cr">stripe.cr</a> -
|
||
Stripe api wrapper</li>
|
||
<li><a href="https://github.com/mmacia/tmdb.cr">tmdb.cr</a> - The Movie
|
||
DB (TMDb) api wrapper</li>
|
||
<li><a
|
||
href="https://github.com/sferik/twitter-crystal">twitter-crystal</a> - A
|
||
library to access the Twitter API</li>
|
||
<li><a href="https://github.com/toddsundsted/web_finger">web_finger</a>
|
||
- A WebFinger (https://tools.ietf.org/html/rfc7033) client</li>
|
||
<li><a href="https://github.com/jaredsmithse/ynab.cr">ynab.cr</a> - A
|
||
library to interact with your YNAB data</li>
|
||
</ul>
|
||
<h2 id="validation">Validation</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/neovintage/accord">accord</a> -
|
||
Shareable validation library for Crystal Objects</li>
|
||
<li><a href="https://github.com/athena-framework/validator">Athena
|
||
Validator</a> - Robust & flexible validation framework</li>
|
||
<li><a
|
||
href="https://github.com/vladfaust/validations.cr">validations</a> -
|
||
Validations mixin</li>
|
||
<li><a href="https://github.com/Nicolab/crystal-validator">validator</a>
|
||
- Data check and validation</li>
|
||
</ul>
|
||
<h2 id="web-frameworks">Web Frameworks</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/amberframework/amber">amber</a> - Open
|
||
source efficient and cohesive web application framework</li>
|
||
<li><a href="https://github.com/athena-framework/athena">Athena</a> - A
|
||
web framework comprised of reusable, independent components</li>
|
||
<li><a href="https://github.com/grip-framework/grip">grip</a> - The
|
||
microframework for writing powerful web applications</li>
|
||
<li><a href="https://github.com/kemalcr/kemal">kemal</a> - Lightning
|
||
Fast, Super Simple web framework. Inspired by Sinatra</li>
|
||
<li><a href="https://github.com/luckyframework/lucky">lucky</a> - Catch
|
||
bugs early, forget about most performance issues, and spend more time on
|
||
code instead of debugging and writing tests</li>
|
||
<li><a href="https://github.com/martenframework/marten">marten</a> - A
|
||
web framework that makes building web applications easy, productive, and
|
||
fun</li>
|
||
<li><a href="https://github.com/runcobo/runcobo">runcobo</a> - An api
|
||
framework with simple, intuitive and consistent DSL, using jbuilder to
|
||
render json</li>
|
||
<li><a
|
||
href="https://github.com/ujjwalguptaofficial/shivneri">Shivneri</a> -
|
||
Component based MVC web framework for crystal targeting good code
|
||
structures, modularity & performance</li>
|
||
<li><a
|
||
href="https://github.com/spider-gazelle/spider-gazelle">spider-gazelle</a>
|
||
- A Rails esque web framework with a focus on speed and
|
||
extensibility</li>
|
||
</ul>
|
||
<h1 id="community">Community</h1>
|
||
<ul>
|
||
<li><a href="https://forum.crystal-lang.org/">Crystal Forum</a></li>
|
||
<li><a href="https://crystal-lang.org/#newsletter">Crystal
|
||
newsletter</a></li>
|
||
<li><a href="https://gitter.im/crystal-lang/crystal">Gitter</a></li>
|
||
<li><a href="ircs://irc.libera.chat:6697#crystal-lang">IRC</a> -
|
||
#crystal-lang on Libera</li>
|
||
<li><a
|
||
href="https://www.reddit.com/r/crystal_programming/">Reddit</a></li>
|
||
<li><a
|
||
href="https://stackoverflow.com/tags/crystal-lang/info">Stackoverflow</a></li>
|
||
</ul>
|
||
<h2 id="unofficial">Unofficial</h2>
|
||
<ul>
|
||
<li><a href="https://t.me/crystal_cn">Chinese-speaking Telegram
|
||
Group</a> - 来吧!TG 中文圈的朋友们!</li>
|
||
<li><a href="https://discord.gg/YS7YvQy">Crystal Programming Discord
|
||
Server</a> - Unofficial Discord server dedicated to the Crystal
|
||
Programming Language</li>
|
||
<li><a href="https://t.me/crystalbrasil">Portuguese-speaking Telegram
|
||
Group</a> - Bem vindos ao Crystal Brasil!</li>
|
||
<li><a href="https://t.me/crystal_ru">Russian-speaking Telegram
|
||
Group</a> - Добро пожаловать, товарищ!</li>
|
||
</ul>
|
||
<h1 id="resources">Resources</h1>
|
||
<ul>
|
||
<li><a href="http://www.crystalforrubyists.com/">Crystal for
|
||
Rubyists</a> - Free book to bootstrap your Crystal journey</li>
|
||
<li><a
|
||
href="https://github.com/crystal-lang/crystal/wiki/Crystal-Shards-for-Ruby-Gems">Crystal
|
||
Shards for Ruby Gems</a> - A list of Ruby Gems and their Crystal Shards
|
||
equivalents</li>
|
||
<li><a href="https://github.com/ilmanzo/crystal-koans">crystal-koans</a>
|
||
- Learn Crystal by writing unit tests</li>
|
||
<li><a href="https://crystal-lang.org">crystal-lang.org</a> - Official
|
||
language site</li>
|
||
<li><a href="https://devdocs.io/crystal/">devdocs.io</a> - API
|
||
Documentation Browser with Crystal support</li>
|
||
<li><a href="https://learnxinyminutes.com/docs/crystal/">Learn X in Y
|
||
minutes</a> - Quick tutorial on Crystal</li>
|
||
<li><a
|
||
href="https://pragprog.com/book/crystal/programming-crystal">Programming
|
||
Crystal</a> - PragProg book to start your Crystal journey</li>
|
||
<li><a href="https://gergelyk.github.io/prog-lang-usability/">Usability
|
||
of Programming Languages</a> - Comparison of Python, Rust, Crystal</li>
|
||
</ul>
|
||
<h2 id="official-documentation-translations">Official Documentation
|
||
Translations</h2>
|
||
<ul>
|
||
<li><a href="http://br.crystal-lang.org/">br.crystal-lang.org</a> -
|
||
Brazilian</li>
|
||
<li><a href="http://ja.crystal-lang.org/">ja.crystal-lang.org</a> -
|
||
Japanese</li>
|
||
<li><a href="https://kr.crystal-lang.org/">kr.crystal-lang.org</a> -
|
||
Korean</li>
|
||
<li><a href="http://ru.crystal-lang.org/">ru.crystal-lang.org</a> -
|
||
Russian</li>
|
||
<li><a href="http://tw.crystal-lang.org/">tw.crystal-lang.org</a> -
|
||
Chinese Traditional</li>
|
||
</ul>
|
||
<h1 id="services-and-apps">Services and Apps</h1>
|
||
<ul>
|
||
<li><a href="https://carc.in/">carc.in</a> - A web service that runs
|
||
your code and displays the result</li>
|
||
<li><a href="https://github.com/arktisklada/crank">Crank</a> - A
|
||
Procfile-based application manager (like Foreman)</li>
|
||
<li><a href="https://github.com/elorest/cry">cry</a> - Ability to
|
||
execute crystal code in a fashion similar to Ruby’s pry edit</li>
|
||
<li><a href="https://github.com/jhass/DeBot">DeBot</a> - IRC bot written
|
||
in Crystal</li>
|
||
<li><a href="https://github.com/crystal-community/icr">icr</a> -
|
||
Interactive console for Crystal (like IRB for Ruby)</li>
|
||
<li><a href="https://github.com/iv-org/invidious">Invidious</a> -
|
||
Invidious is an alternative front-end to YouTube</li>
|
||
<li><a href="https://github.com/thewalkingtoast/mpngin">mpngin</a> - A
|
||
URL shortener with simple stats</li>
|
||
<li><a href="https://github.com/crystal-china/procodile">procodile</a> -
|
||
Run processes in the background (and foreground) on Mac & Linux from
|
||
a Procfile (for production and/or development environments)</li>
|
||
<li><a href="https://quicktype.io/">quicktype</a> - Generate models and
|
||
serializers from JSON, JSON Schema, GraphQL, and TypeScript</li>
|
||
<li><a href="http://shards.info/">shards.info</a> - Web service that
|
||
lists all repositories on GitHub that have Crystal code in them. The
|
||
sources are available on <a
|
||
href="https://github.com/mamantoha/shards-info">GitHub</a></li>
|
||
</ul>
|
||
<h1 id="tools">Tools</h1>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/bcardiff/crystal-ast-helper">ast_helper</a> -
|
||
Helper tool to debug parser and formatter</li>
|
||
<li><a href="https://github.com/ruivieira/crystal-base">crystal-base</a>
|
||
- CentOS base docker image for Crystal development</li>
|
||
<li><a
|
||
href="https://github.com/Sija/crystal-dash-docset">crystal-dash-docset</a>
|
||
- <a href="https://kapeli.com/dash">Dash</a> docset generator</li>
|
||
<li><a
|
||
href="https://github.com/crystal-china/port_ruby_to_crystal">port_ruby_to_crystal</a>
|
||
- A regex replace ruby script for port ruby code to crystal easier,
|
||
reduce friction</li>
|
||
<li><a
|
||
href="https://github.com/toddsundsted/public_suffix">public_suffix</a> -
|
||
A small library designed to make the Public Suffix List
|
||
(https://publicsuffix.org/) easier to use</li>
|
||
</ul>
|
||
<h2 id="devops">DevOps</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/CorbanR/ansible-crystal">ansible-crystal</a> -
|
||
Ansible playbook for installing crystal</li>
|
||
<li><a href="https://github.com/DFabric/dppm">DPPM</a> - An easy,
|
||
universal way to install and manage applications as packages (mostly
|
||
Linux)</li>
|
||
</ul>
|
||
<h2 id="editor-plugins">Editor Plugins</h2>
|
||
<ul>
|
||
<li>Acme:
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/ilanpillemer/acmecrystal">acmecrystal</a> -
|
||
Reformats crystal code in acme</li>
|
||
</ul></li>
|
||
<li>Atom
|
||
<ul>
|
||
<li><a href="https://atom.io/packages/crystal-tools">crystal-tools</a> -
|
||
Enables built in tools in Crystal compiler</li>
|
||
<li><a
|
||
href="https://atom.io/packages/language-crystal-actual">language-crystal-actual</a>
|
||
- Crystal language support in Atom</li>
|
||
</ul></li>
|
||
<li>Emacs
|
||
<ul>
|
||
<li><a href="https://melpa.org/#/crystal-mode">crystal-mode</a> -
|
||
Crystal language support for Emacs (<a
|
||
href="https://github.com/crystal-lang-tools/emacs-crystal-mode">crystal-lang-tools/emacs-crystal-mode</a>)</li>
|
||
</ul></li>
|
||
<li>Geany
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/crystal-lang-tools/geany-crystal">geany-crystal</a>
|
||
- Crystal support for the <a href="https://www.geany.org/">Geany
|
||
editor</a></li>
|
||
</ul></li>
|
||
<li>IntelliJ IDEA
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/asedunov/intellij-crystal-lang">intellij-crystal-lang</a>
|
||
- Crystal support for the JetBrains IDEs</li>
|
||
</ul></li>
|
||
<li>Lite-XL
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/Tamnac/lite-plugin-crystal">lite-plugin-crystal</a>
|
||
- Crystal support for the <a href="https://lite-xl.com/en/">Lite-XL</a>
|
||
editor</li>
|
||
</ul></li>
|
||
<li>Spacemacs
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/juanedi/crystal-spacemacs-layer">crystal-spacemacs-layer</a>
|
||
- Spacemacs contribution layer for Crystal</li>
|
||
</ul></li>
|
||
<li>Sublime
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/crystal-lang-tools/sublime-crystal">sublime-crystal</a>
|
||
- Crystal syntax highlighting for sublime Text</li>
|
||
</ul></li>
|
||
<li>TextMate
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/crystal-lang-tools/Crystal.tmbundle">Crystal.tmbundle</a>
|
||
- Crystal syntax highlighting, compile, format command, snippets</li>
|
||
</ul></li>
|
||
<li>Vim
|
||
<ul>
|
||
<li><a href="https://github.com/vim-crystal/vim-crystal">vim-crystal</a>
|
||
- Vim filetype support for Crystal</li>
|
||
<li><a href="https://github.com/elorest/vim-slang">vim-slang</a> - Vim
|
||
filetype support for Slang Templating Engine</li>
|
||
</ul></li>
|
||
<li>Visual Studio Code
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/crystal-lang-tools/vscode-crystal-lang">vscode-crystal-lang</a>
|
||
- Formatter, linter and syntax highlighting for <code>cr</code> and
|
||
<code>ecr</code> files</li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="lsp-language-server-protocol-implementations">LSP Language
|
||
Server Protocol Implementations</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/elbywan/crystalline">crystalline</a> -
|
||
Crystalline is an implementation of the Language Server Protocol written
|
||
in and for the Crystal Language</li>
|
||
<li><a href="https://github.com/crystal-lang-tools/scry">scry</a> - Code
|
||
analysis server for Crystal implementing the <a
|
||
href="https://microsoft.github.io/language-server-protocol/">Language
|
||
Server Protocol</a></li>
|
||
</ul>
|
||
<h2 id="shell-plugins">Shell plugins</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/Val/crun">crun</a> - Crystal Run :
|
||
shebang wrapper for Crystal</li>
|
||
<li><a href="https://github.com/veelenga/crystal-zsh">crystal-zsh</a> -
|
||
.oh-my-zsh plugin</li>
|
||
</ul>
|
||
<p><a href="https://github.com/veelenga/awesome-crystal">crystal.md
|
||
Github</a></p>
|