Awesome Crystal
Crystalを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
アルゴリズムとデータ構造
- bisect - ソート済み配列に値を挿入する
- blurhash.cr - BlurHash の実装
- crie - コンパイル時 Trie
- CrOTP - 2要素認証用のHOTPおよびTOTPの実装
- crystal-linked-list - 連結リストの実装
- crystaledge - 純粋なベクトル数学ライブラリ
- crystalg - ジェネリックアルゴリズムライブラリ
- crystalline - コンテナとアルゴリズムのコレクション
- csuuid - 時系列順に並べられるUUID
- edits.cr - 編集距離アルゴリズムのコレクション
- fzy - 素晴らしいFzyプロジェクトのファジー検索アルゴリズムをCrystalで再実装
- Goban - 高速かつ効率的なQRコード実装
- graphlb - グラフデータ構造とアルゴリズムのコレクション
- haversine - ハバーソンの公式の実装
- HKDF - HMACベースの抽出・拡張鍵生成関数 rfc5869
- kd_tree - “K次元木”および”N近傍”の実装
- ksuid.cr - K-ソート可能なグローバルに一意なID
- markov - マーカーチェーンを構築し、マーカープロセスを実行
- multiset.cr - マルチセットの実装
- named_information - ハッシュで名前を付ける rfc6920
- qr-code - QRコード生成器
- radix - ラディクスツリーの実装
- s2_cells - S2 Geometry を用いた空間インデックス
- secure-remote-password - 不安全なネットワーク上の認証用SRP-6aプロトコル
- SPAKE2+ - パスワード認証鍵交換(PAKE)プロトコル、SRP-6aと同等
- splay_tree_map - ハッシュダックタイプに準拠したスプレー木の実装
- verhoeff - ベルヘフのチェックサムアルゴリズムの実装
ブロックチェーン
- Axentro - カスタムブロックチェーンプラットフォーム
- Cocol - 最小限のブロックチェーンテスト環境
- secp256k1.cr - 公開鍵とプライベート鍵暗号で使用される楕円曲線
Cバインディング
- augeas.cr - Augeas へのバインディング
- clang.cr - Libclangのバインディング
- crt.cr - libncurseswおよびcrtへのバインディング
- crystal-gsl - GNU Scientific Library へのバインディング
- crystal-hunspell - Hunspell へのバインディング
- duktape.cr - Duktape JavaScriptエンジンへのバインディング
- fftw.cr - FFTW ライブラリへのバインディング
- gphoto2.cr - libgphoto2 ライブラリへのバインディング
- gpio.cr - gpiodライブラリ(一般用途I/O制御およびフィードバック)へのバインディング
- icu.cr - ICU ライブラリへのバインディング
- libnotify.cr - Libnotifyへのバインディング
- nlopt.cr - NLOpt へのバインディング
- pcap.cr - libpcapへのバインディング
- pledge.cr - Cバインディングに関するCrystalライブラリ、サービス、ツール、または資料です。(
pledge(2)) - ssh2.cr - libssh2ライブラリへのバインディング
- syslog.cr - Cバインディングに関するCrystalライブラリ、サービス、ツール、または資料です。(
syslog) - v4l2.cr - Video4Linux2 へのバインディング
- wasmer-crystal - Cバインディングに関するCrystalライブラリ、サービス、ツール、または資料です。(
wasmer) - wgpu-cr - wgpu-native へのバインディング (WebGPU)
- win32cr - Win32 APIへのバインディング
- x_do.cr - libxdo (
xdotool) へのバインディング
キャッシュ
- apt-larder - APTパッケージリポジトリ向けのHTTPキャッシュプロキシ
- cache - キー/値ストアで、ペアは指定された期間後に期限切れになるよう設定可能
- crystal-memcached - memcachedクライアントの実装
CLIビルダー
- admiral - コマンドラインインターフェースを書くための堅牢なDSL
- Athena Console - CLIベースのコマンドの作成を可能にする
- clicr - シンプルな宣言型コマンドラインインターフェースビルダー
- clim - スリムなコマンドラインインターフェースビルダー
- Cling - モジュラーでマクロベースではないコマンドラインインターフェースライブラリ
- commander - コマンドラインインターフェースビルダー
- Keimeno - クリスタルにおける軽量なテキストユーザーインターフェースライブラリ
- OptionParser - コマンドラインオプション処理(クリスタル標準ライブラリ)
- Phreak - オプションパーサー風の柔軟性を持つクリスタルCLIビルダー
CLIユーティリティ
- climate - CLI出力に🌈色をつけるための小さなツール
- coin - currency conversion を Fixer API を使って行うコマンドラインアプリケーション
- cride - 軽量なCLIテキストエディタ/IDE
- git-repository - リモートリポジトリのクエリとクローンを行うためのgit CLIラッパー(データ転送量を最小限に)
- hetzner-k3s - Hetzner CloudにおけるKubernetesクラスタの迅速作成と管理を行うCLIツール
- lff - コマンドライン上でシンプルかつ明確な大規模ファイル検索ユーティリティ
- meet - コマンドラインからすぐにJitsi会議を開始する
- oq - JSON以外のフォーマットの消費と出力を容易にするパフォーマンスとポータブルな jq ラッパー; jq フィルタを使ってデータを変換
- progress_bar.cr - シンプルかつカスタマイズ可能な進行バー
- tablo - 柔軟なターミナルテーブル生成ツール
- tallboy - セルを複数列にわたってスパンできるASCII文字テーブル生成ツール
コード解析とメトリクス
- ameba - 静的コード分析ツール
- cruml - 任意のクリスタルプロジェクトに対してUMLクラス図を生成するツール
- linguist.cr - GitHubのLinguistを用いてファイル内のプログラミング言語を複数の方法で検出
圧縮
- Crystar - Tarアーカイブフォーマットの読み書きツール
- Gzip - gzipフォーマットの読み書きツール(クリスタル標準ライブラリ)
- polylines.cr — compression of series of coordinates
- snappy - Snappy圧縮フォーマットの読み書きツール(クリスタ連)
- Zip - zipフォーマットの読み込みと書き込み(Crystal stdlib)
- Zlib - zlibフォーマットの読み込みと書き込み(Crystal std及)
- zstd.cr - Zstandard 壊れしライブラリへのバインディング
構成
- cr-dotenv - .envファイルの読み込み
- Envy - YAMLから環境変数を読み込み
- envyable - シンプルなYAMLからENV設定へのローダー
- habitat - クラスとモジュールに適合した型安全な設定
- totem - JSON、YAML、dotenv形式の設定ファイルを読み込みとパース
- typed_env_config - YAML/dotenvから型安全な設定を読み込み、環境変数で上書き
- ucl.cr - libucl、UCL/JSON設定の読み込み、ダンプ、検証へのバインディング
変換ツール
- base62.cr - ベース62エンコーダー/デコーダー、URL短縮に適している
- crunits - 単位変換ツール(マイルからキロメートル、セントリューレスからフェアハートなど)
- money - お金と通貨変換を簡単に扱う (ほぼ完全な RubyMoney の移植)
- sass.cr - SASS/SCSSをCSSにコンパイル(libsassバインディング)
- tssc.cr - 変換ツールに関するCrystalライブラリ、サービス、ツール、または資料です。(
Time::Span)
暗号
- cmac - メッセージ認証コード(CMAC)に基づく暗号化(Crystal実装)
- ed25519 - 暗号に関するCrystalライブラリ、サービス、ツール、または資料です。 [RFC 8032]で規定されています
- monocypher.cr - Monocypher暗号ライブラリのCrystalラッパー
- sodium.cr - libsodium暗号APIのCrystalラッパー
データ形式
- BinData - バイナリデータパーサーヘルパー(ASN.1パーサー)
- config.cr - 使いやすい設定フォーマットパーサー
- crinder - クラスベースのJSONレンダラー
- Crystalizer - 任意のCrystalオブジェクトの(デ)シリアライズ;JSON、YAML、バイトフォーマットを標準でサポート
- CSV - 区切り文字で区切られた値(CSV)のパースと生成(Crystal stdlib)
- front_matter.cr - ファイルの前部情報とコンテンツを分離
- geoip2.cr - GeoIP2リーダー
- HAR - HAR(HTTPアーカイブ)パーサー
- INI - INIファイルパーサー(Crystal標準ライブラリ)
- jmespath.cr - JSON用クエリ言語JMESPathのCrystal実装
- JSON - JSONドキュメントのパースと生成(Crystal標準ライブラリ)
- json-schema - JSONシリアルizableクラスをJSON Schema表現に変換
- JSON::OnSteroids - JSONドキュメントを簡単に扱い変更できる
- maxminddb.cr - MaxMindDBリーダー
- toml.cr - TOMLパーサー
- toon-crystal - TOON(トークン指向オブジェクト記法)パーサー
- XML - XMLドキュメントのパースと生成(Crystal標準ライブラリ)
- YAML - YAMLドキュメントのパースと生成(Crystal標準のライブラリ)
データ生成
- faker - フィクションデータを生成するためのライブラリ
- hashids.cr - YouTubeのようなIDを1つまたは複数の数字から生成するためのライブラリ
- prime - 素数生成器
データベースドライバー/クライアント
- couchdb.cr - CouchDBクライアント
- cryomongo - MongoDBドライバー
- crystal-db - 共通DBAPI
- crystal-ldap - LDAPクライアント
- crystal-mysql - Crystal用MySQLコンネクタ
- crystal-pg - Postgresドライバー
- crystal-redis - フル機能のRedisクライアント
- crystal-rethinkdb - RethinkDB / RebirthDBドライバー
- crystal-sqlite3 - SQLite3バインディング
- leveldb - レベルDB用のクリスタルバインディング
- rocksdb.cr - RocksDBクライアント
- surrealdb.cr - 非公式のSurrealDB HTTPおよびWebSocketクライアント
データベースツール
- migrate - トランザクションをサポートするシンプルなデータベースマイグレーションツール
デバッグ
- backtracer.cr - バックトレースを構造化形式にパースするためのシェアド
- debug.cr - デバッグに関するCrystalライブラリ、サービス、ツール、または資料です。(
debug!(…)、pp)
依存性注入
- Athena Dependency Injection - 強固なデプロイメントインジェクションサービスコンテナフレームワーク
- Crystal-DI - 軽量のDIコンテナ
- HardWire - コンパイル時非侵襲的な依存性注入システム
- syringe - crystal用のシンプルかつ基本的な依存性注入シェル
メール
- carbon - 楽しい、テスト可能でアダプタベースのメールライブラリ
- crystal-email - シンプルなメール送信用ライブラリ
- CrystalEmail - RFCに準拠したメールアドレスバリデーション
- sendgrid.cr - シンプルなSendGridクライアント
環境管理
- asdf-crystal - asdfバージョンマネージャー用プラグイン
- crenv - クリスタルバージョンマネージャー
- rcm.cr - Redisクラスタマネージャ
- vfox-crystal - vfoxバージョンマネージャー用プラグイン
サンプルと楽しい作品
- blackjack-cr - コンソールブラックジャック
- crystal-patterns - GOFパターンの例
- crystalworld - realworld.ioバックエンドAPI実装
- exercism-crystal - エクササイズの練習問題
- try.cr - モンアドを試す
フレームワーク部品
- Athena Event Dispatcher - メディエーターと観察者パターンのイベントライブラリ
- Athena Negotiation - フレームワークに依存しないコンテンツ交渉ライブラリ
- device_detector - ユーザーエージェント文字列をもとにデバイスを検出するシェアド
- Exception Page - Crystalウェブライブラリおよびフレームワーク向けの例外ページ
- graphql - 型安全な -0000 サーバー実装 GraphQL
- graphql-crystal - GraphQL 実装
- kemal-session - Kemal用のセッションハンドラー
- mochi - Deviseをインスピレーションとして採用した認証シェアド:Authenticable、Confirmable、Invitableなど
- motion.cr - Amber向けのオブジェクト指向フロントエンドライブラリ
- multi-auth - 標準化されたマルチプロバイダーOAuth2認証(omniauthをインスピレーションとして)
- praetorian - Punditをインスピレーションとして採用したミニマリズムな認可ライブラリ
- rbacr - 役割ベースのアクセス制御システムで、役割、権限、認可論理に clean かつ型安全なDSLを提供
- Shield - Luckyフレームワーク向けの包括的なセキュリティ
- shrine.cr - Crystalアプリケーション向けのファイル添付ツールキット。RubyのShrineを強くインスピレーションとして採用
- tourmaline - Telegramボットフレームワーク(APIはtelegraf.jsに基づく)
ゲーム開発
- CrSFML - SFMLマルチメディア/ゲームライブラリへのバインディング
- crystal-chipmunk - Chipmunk、高速かつ軽量な2Dゲーム物理ライブラリへのバインディング
- crystal-imgui-sfml - Dear ImGuiをSFMLプロジェクトに統合するためのバインディング
- entitas.cr - Crystal向けのエンティティ・コンポーネント・システムフレームワーク
- MyECS - Crystal向けの稀疏エンティティ・コンポーネント・システムフレームワーク
- Raylib-cr - Linux、Windows、MacをサポートするRaylibへの直接バインディング
- SDL-Crystal-Bindings - 直接(不安全)バインディング(自作ゲームライブラリの開発用) SDL2
GUI開発
- CrymbleUI - Crystal向けの快適で高速なGUIフレームワーク。宣言型DSL、反応型状態、パフォーマンスの高い、VirtualMatrixおよびRecursiveGridを含む豊かなウィジェットセット
- crystal-imgui - Dear ImGui、即時モードグラフィカルUIライブラリへのバインディング
- GTK4.cr - GTK4のCrystalized APIを備えたバインディング
- Iu - Fusion/libui.crライブラリに基づくUIフレームワーク(カスタム要素とhedron-crystal/hedronからの改良バインディング)
- Ultimate GTK4 Crystal Guide - CrystalでプレミアムGTK4アプリを作成する方法を学ぶ
HTMLビルダー
- blueprint - シンプルなCrystalで再利用可能かつテスト可能なHTMLテンプレートを書く
- form_builder.cr - Bootstrapなど多くの人気UIライブラリに対応した、非常にシンプルなHTMLフォームビルダー
- to_html - クリスタルで最も速いHTMLビルダーエンジン
- Water - クリスタルでHTMLをシンプルに書くためのライブラリ
HTML/XML解析
- docx_cr_converter - DOCX Wordのパース
- lexbor - CSSセレクタを含む高速HTML5パーサー
HTTP
- Cable - ActionCableの”ポート”をクリスタルで実装、フレームワークに依存せず、ActionCable JSクライアントと100%互換
- cossack - シンプルで柔軟なHTTPクライアント
- crest - シンプルなHTTPおよびRESTクライア連、RubyのRestClient gemをインスピレーションに受けて作成
- crul - コマンドライン用HTTPクライアント
- cryload - cryloadはAPIやウェブサービスのストレステストに最適な強力で高速かつ実用的なHTTPベンチマークツール
- digest-auth - ダイジェスト認証
- halite - クリスタルのHTTPリクエストにチェーン可能なRESTAPIを備え、セッションとログの組み込み
- http-multiserver.cr - ルート(URLマッピング)を用いた複数サーバーのマウント
- http-params-serializable - HTTPパラメータ(デ)シリアライズ、URLクエリとURLエンコードされたフォームに適用可能
- http-protection - 典型的なウェブ攻撃への防御
- http2 - HTTP/2プロトコルの実装
- HTTP::Client - HTTPクライアント(クリスタル標準ライブラリ)
- HTTP::Server - HTTPサーバー(クリスタル標準ライブラリ)
- HTTP::WebSocket - HTTP WebSocketクライアント(クリスタル標準ライブラリ)
- link-header - HTTP Linkヘッダー解析
- ntlm - NTLM認証
- proxy-fetcher.cr - プロキシリストの取得・検証用ライブラリ
- sse.cr - Server-Sent Eventsクライアント
画像処理
- celestine - DSLを使ってSVG画像を作成
- ffmpeg - StumpyPNGと連携したFFmpegのバインディングでフレームを抽出
- Pluto - 高速かつ使いやすい画像処理ライブラリ
- stumpy_png - PNG画像の読み書き
実装/コンパイラー
- charly - Charlyプログラミング言語
- cltk - Ruby言語ツールキットのCrystal版
- crisp - Crystalで実装されたLisp方言
- GiavaScript - オープンソース・マルチプラットフォームJavaScriptランタイム
- LinCAS-lang - 科学計算用プログラミング言語
- mint-lang - フロントエンドウェブ向けフレッシュなプログラミング言語
- myst-lang - シンプルで実用的な動的言語。書く・理解するのに簡単かつ効率的にできるように設計された
- novika - 自由な構造・柔軟にカスタマイズ可能なインタープリタードプログラミング言語
- runic-lang - デザイン中の玩具言語
国際化
- crystal-i18n - Ruby-I18nをインスピレーションとして作られた国際化ライブラリ
- i18n.cr - 国際化シェルド
- Lens - Crystalで実装されたマルチフォーマット国際化(i18n)シェルド。Gettext、Ruby YAMLなどに対応
- Rosetta - YAMLおよびJSONフォーマットをサポートする、コンパイル時キー検索を可能にする高速国際化(i1-8n)ライブラリ
ログと監視
- crafana - ダッシュボード自動生成を支援するGrafanaライブラリ
- fiber_metrics.cr - ログと監視に関するCrystalライブラリ、サービス、ツール、または資料です。(
Fiber) - Log - ログユーティリティ(Crystal stdlib)
- statsd.cr - Statsdクライアントライブラリ
機械学習
- ai4cr - https://github.com/SergioFierens/ai4r を基にした人工知能ライブラリ
- Cadmium - naturalを大きくベースにしたNLPライブラリ
- crystal-fann - FANN(Fast Artificial Neural Network)のバインディング
- mxnet.cr - MXNetへのバインディング
- shainet - SHAInet(純粋Crystalによるニューラルネットワーク)
Markdown/テキスト処理
- cr-cmark-gfm - cmark-gfm 用の Crystal C バインディングで、Commonmark および GitHub フラヴァード マークダウンと互換性を確保
- markd - スピードに最適化されたもう一つのMarkdown解析器。CommonMark仕様に準拠
その他
- aasm.cr - Crystalクラス向けに使いやすい有限状態マシン
- any_hash.cr - 再帰的ハッシュで、より良いJSON::Anyが含まれる
- anyolite - シンプルなバインディングを備えたフル機能mrubyインタプリタ。プロジェクトにおける簡単なスクリプトサポートを可能にする
- burocracia.cr - burocracia.cr:依存関係のないシェアドで、ブラジルの公的識別情報(CPF、CNPJ、CEPなど)の検証、生成、フォーマットを可能にする
- callbacks - 表現力のあるコールバックモジュール
- circuit_breaker - 回路ブレーカーパターンの実装
- cpf_cnpj - CPFおよびCNPJ識別子の検証とフォーマットに必要なユーティリティを提供
- CrSignals - Signals/slots通知ライブラリ
- crystal-binary_parser - バイナリパーサー
- crystal-web-framework-stars - Crystal用のウェブフレームワーク。GitHubで最もスター数が多い
- crz - 関数型プログラミングライブラリ
- defined - 定数定義、バージョン要件、環境変数設定に基づく条件分岐用のマクロ
- emoji.cr - エモジライブラリ
- gphoto2-web.cr - libgphoto2用のWeb API
- immutable - スレッドセーフかつ永続的で不変なコレクションの実装
- iterm2 - ITerm2のインライン画像プロトコルを使って、ターミナル内に画像を表示
- lua.cr - libluaへのバインディングとそのラッパー
- luajit.cr - Crystal用のLuaJITバインディング
- monads - モンアドの実装
- observable - 観察者パターンの実装
- pinger - sudoを必要とせずにIPアドレスやDNSエントリをping
- port_midi - PortMIDIクロスプラットフォームMIDI I/Oライブラリに対するCrystal Cのバインディング
- retriable.cr - 失敗したコードブロックを再実行するためのシンプルDSL
- sentry - Crystalアプリケーションのビルド・実行を行い、ファイル変更時にアプリを再構築または再起動する
- serf-handler.cr - Serfハンドラを構築するためのフレームワーク、有用なビルトイン機能を備えたツールセット
- simple_retry - 失敗したコードブロックを再実行するためのシンプルツール
- sslscan.cr - rbsec/sslscanユーティリティを包むCrystalシェード
- version_tools - コンパイル時におけるバージョン依存動作の指定
- wafalyzer - ウェブアプリケーションファイアウォール(WAF)検出ツール(シェード+CLI)
- zaru_crystal - ファイル名のセイフティ処理
ネットワークプロトコル
- amqp-client.cr - AMQP 0-9.1、メッセージプロトコル(例:RabbitMQで実装)
- connect-proxy - HTTPトンネリング/HTTPプロキシのConnectメソッドスタイル
- cr-xmpp - XMPP/Jabberライブラリ
- Crirc - IRCプロトコルの実装(クライアント、サーバー、ボット)
- crystal-bacnet - BACnetプロトコルの実装(BACnet/IPクライアント)
- crystal-json-socket - JSON-socketクライアントおよびサーバーの実装。node-json-socketおよびruby-json-socketにインスピレーションを受けており、それと互換性がある
- crystal-mqtt - MQTTクライアント
- crystal-snmp - SNMP実装(バージョン1、2c、3に対応)
- crystal-swim - SWIMを用いた分散クラスタ発見と最終的に一貫した障害検出
- dns - DNSプロトコルの実装とリゾルバー
- fast_irc.cr - 高速IRCパーサー/ジェネレーター
- jwt - JWT(JSON Web Token)の実装
- knx - マルチキャスト、ユニキャストおよびTCP/IPトンネリングをサポートするKNXプロトコルの実装
- Matter - スマートホームおよびIoTデバイス向けのMatterプロトコル
- mDNS - DNSサービス発見およびマルチキャストDNS
- mqtt-client.cr - 高速かつ軽量のMQTTクライアント
- msgpack-crystal - MessagePackライブラリ
- OAuth - OAuthコンシューマー(Crystal標準ライブラリ)
- OAuth2 - OAuth2クライアント(Crystal標準ライブラリ)
- OpenSSL - libsslへのバインディング(Crystal標準ライブラリ)
- simple_rpc - Crystal用のRPCサーバーおよびクライアント。msgpack-rpcプロトコルを実装
- stomp - STOMPプロトコル
- telnet.cr - Telnetプロトコル
- transfer_more - transfer.shのクローンでファイルをアップロード
ネットワーク
- ipaddress.cr - IPv4およびIPv6アドレスを扱うライブラリ
- mac-address - MACアドレスを扱うライブラリ
ORM/ODM拡張
- avram - Postgresデータベースの読み書きおよびマイグレーションを行うデータベースラッパー
- clear - PostgreSQL専用のORMだが、高度な機能を備えたもの
- crecto - Ectoに基づいたデータベースラッパー
- granite - Postgres、Mysql、Sqlite用のORM
- jennifer.cr - Active Recordパターンを実装した柔軟なクエリチェーンビルダーとマイグレーションシステム
- lustra - 高度なPostgreSQL ORMでActive Recordパターン、全文検索、ジオメトリ型などを提供
- rethinkdb-orm - RethinkDB / RebirthDB用のORM
パッケージ管理
- shards - Crystal用の依存関係マネージャ
プロセスとスレッド
- await_async - Crystal言語にawaitとasyncキーワードを追加
- concurrent.cr - ストリーム/パイプライン、waitgroups、セマフォ、smoresなどを用いたシンプルな並列処理
- neph - ジョブを並列実行できる現代的なコマンドラインジョブプロセッサ
- promise - 型推論を用いたPromise実装
- werk - ローカルCIに最適な並列対応のシンプルなタスクランナー
プロジェクト生成
- crygen - Crystalコードを生成できるライブラリ
- crystal_lib - ネイティブライブラリへの自動バインディング生成
- fez - Kemalアプリケーション生成ツール
- libgen - JSON/YAMLファイルで設定された自動バインディング生成ツール
キューとメッセージング
- crafka - キューとメッセージングに関するCrystalライブラリ、サービス、ツール、または資料です。(
librdkafka) - mosquito - Redisをバックエンドにした定期ジョブおよび一時ジョブ処理
- NATS.io - NATSクライアント
- sidekiq.cr - シンプルかつ効率的なジョブ処理
ルーティング
スケジューリング
- crystime - 高度な時刻、カレンダー、スケジュール、リマインダーライブラリ
- schedule.cr - 定期タスクの実行
- tasker - タイムゾーンを考慮したクロントークを含む高精度スケジューラ
科学計算とデータ解析
- alea - 確率分布と関連する繰り返しサンプリング、CDFなどその他のユーティリティ
- ishi - gnuplotを基にした小さなAPIと妥当なデフォルト値を持つグラフプロットパッケージ
- linalg - MATLABおよびSciPy.linalgをインスピレーションとして設計された線形代数ライブラリ
- num.cr - N次元データをサポートする数値計算ライブラリ
- predict.cr - SGP4モデルを使用した衛星予測ライブラリ
- quartz - モデリングおよびシミュレーションフレームワーク
検索
- hermes - ElastiSearch用のデータマッピングパターンの実装
セキュリティ
- cyclonedx-cr - Crystalプロジェクト用のCycloneDX SBOM(ソフトウェア部品リスト)生成器
- OWASP Noir - 静的解析によりエンドポイントを特定する攻撃面検出ツール
- XSSMaze - XSSMazeは、多様なXSSケースを用いてセキュリティツールをテストするウェブサービス
サーバーレスコンピューティング
- crystal_openfaas - OpenFaaSにおいてCrystalを第一のクラスに位置づけるためのテンプレート
- secrets-env - ENVモジュールを拡張し、Docker/Kubernetesのシークレットなど他のオーケストレーションツールから注入された値を読み込む
システム
- baked_file_system - 仮想ファイルシステムの実装
- hardware - 実行中のOSおよびそのプロセスのCPU、メモリ、ネットワーク情報を取得
タスク管理
テンプレートエンジン
- crinja - Jinja2 template engineの実装
- crustache - Crystal用の{{Mustache}}
- ECR (Embedded Crystal) - プレーンなCrystal表現(Crystal stdlib)を使用するコンパイル時テンプレート言語
- Jbuilder - jbuilderにインスピレーションを得たビルダースタイルDSLでJSONオブジェクトを生成
- Kilt - テンプレートエンジン向けの抽象化層
- Slang - RubyのSlimにインスピレーションを得た軽量かつ簡潔なテンプレート言語
- teeplate - 複数のテンプレートファイルをレンダリングするためのライブラリ
テスト
- Athena Spec - 共通/有用なSpec対応テストユーティリティ
- crotest - 極めて小さくシンプルなテストフレームワーク
- crytic - ミューテーションテストフレームワーク
- hashr - JSONレスポンスに対するテストを簡単に行うためのクラス
- LuckyFlow - Capybaraに類似した自動ブラウザテスト
- mass-spec - Web APIテストライブラリ
- microtest - パワーアサートに焦点を当てた小さな意見を持つテストライブラリ
- minitest.cr - ユニットテストとアサートに特化したライブラリ
- mocks.cr - Crystal用のモックライブラリ
- selenium.cr - ウェブページとのインタラクションを行うブラウザ自動化用のSeleniumクライアント
- Spec - specフレームワーク (Crystal stdlib)
- spectator - 現代的なexpect構文を使用する、豊富な機能を持つspecフレームドーム
- timecop.cr -
Time.nowを使ったモックのためのライブラリ。timecop ruby gemにインスピレーションを受けており、 - vcr - Crystal用のHTTPキャプチャとリプレイ実装
- webdriver_pump - ページオブジェクトライブラリ。RubyのWatirPumpにインスピレーションを受けており、
- webmock.cr - テストに関するCrystalライブラリ、サービス、ツール、または資料です。(
HTTP::Client)
サードパーティAPI
- amazonite - 人気のAWS APIをサポートする非公式SDK
- aws-signer.cr - あなたのHTTPリクエストにAWS v4を使用して署名
- awscr-s3 - AWS S3インターフェース
- awscr-signer - HTTP::Requestオブジェクトを署名し、プレサインドポストフォームを生成
- crystal-consul - Consul APIクライアント
- crystal-darksky - Dark SkyAPIのラッパー
- crystal-swapi - スター・ウォーズAPI (SWAPI) ウェッパー
- crystal_slack - スラックのスラッシュコマンドをパースするツールまたは、入力されたWebhookを送信するツール
- GDAX - GDAX REST および WebSocket API ラッパーとリクエスト署名
- gitlab.cr - GitLab API ラッパー
- google - Google API ラッパー
- host_meta - Web Host Metadata (https://tools.ietf.org/html/rfc6415)クライアント
- kube-client.cr - Kubernetes API クライアント
- mixpanel-crystal - Mixpanel にイベントを送信するためのライブラリ
- mollie.cr - Mollie決済APIラッパー(クレジットカード、PayPal、Apple Pay、Sofort、Klarna、…)
- office365 - Microsoft Graph API ラッパー
- pinboard.cr - Pinboard API
- raven.cr - RavenはSentryのクライアント
- stripe.cr - Stripe API ラッパー
- tmdb.cr - The Movie DB (TMDb) API ラッパー
- twitter-crystal - Twitter API にアクセスするためのライブラリ
- web_finger - WebFinger (https://tools.ietf.org/html/rfc7033)クライアント
- ynab.cr - あなたの YNAB データとやり取りするためのライブラリ
TUI
- termisu - テキストベースのユーザーインターフェースを書くためのミニマリズムAPI
検証
- accord - Crystal Objects 用の共有バリデーションライブラリ
- Athena Validator - 頑健で柔軟なバリデーションフレームワーク
- validations - バリデーションミックスイン
- validator - データのチェックとバリデーション
Webフレームワーク
- amber - オープンソースで効率的かつ統合されたウェブアプリケーションフレームワーク
- Athena - 再利用可能で独立したコンポーネントから構成されたウェブフレームワーク
- grip - 強力なウェブアプリケーションを書くためのマイクロフレームワーク
- kemal - Lightning Fast, Super Simple フレームワーク。Sinatra にインスピレーションを受けて作成
- lucky - バグを早期に発見し、ほとんどのパフォーマンス問題を気にせず、コードに時間を費やすことができる
- marten - ウェブアプリケーションの開発を簡単で生産的かつ楽しいようにするウェブフレームワーク
- runcobo - jbuilderを使用してJSONをレンダリングする、シンプルで直感的で一貫したDSLを持つAPIフレームワーク
- Shivneri - コード構造、モジュラリティ、パフォーマンスに注目した、Crystal向けのコンポーネントベースのMVCウェブフレームワーク
- spider-gazelle - 速さと拡張性に焦点を当てたRails風ウェブフレームワーク
コミュニティ
- Crystal Forum
- Crystal newsletter
- Gitter
- IRC - Liberaの#crystal-lang。
- Stackoverflow
非公式
- Crystal Programming Discord Server - クリスタルプログラミング言語に特化した公式外のDiscordサーバー
- Portuguese-speaking Telegram Group - クリスタル・ブラジルへようこそ!
- Russian-speaking Telegram Group - Добро пожаловать, товарищ!
資料
- Crystal for Rubyists - クリスタルの学習をスタートするための無料書籍
- Crystal Shards for Ruby Gems - RubyのGemsとそのクリスタル対応Shardsのリスト
- crystal-koans - ユニットテストを書くことでクリスタルを学ぶ
- crystal-lang.org - 公式言語サイト
- devdocs.io - クリスタル対応のAPIドキュメントブラウザ
- Learn X in Y minutes - クリスタルのクイックチュートリアル
- Programming Crystal - クリスタルの学習をスタートするためのPragProg書籍
- Usability of Programming Languages - Python、Rust、Crystalの比較
公式文書の翻訳
- br.crystal-lang.org - ブラジル語
- ja.crystal-lang.org - 日本語
- kr.crystal-lang.org - 韓国語
- ru.crystal-lang.org - ロシア語
- tw.crystal-lang.org - 中国語(繁体)
サービスとアプリ
- carc.in - コードを実行し結果を表示するウェブサービス
- Crank - プロセスファイルベースのアプリケーションマネージャー(例:Foreman)
- cry - Rubyのpry editに類似した動作でCrystalコードを実行できる機能
- DeBot - Crystalで書かれたIRCボット
- icr - Crystal用のインタラクティブコンソール(RubyのIRBに類似)
- Invidious - InvidiousはYouTubeの代替フロントエンド
- mpngin - シンプルな統計情報を提供するURL短縮サービス
- procodile - MacおよびLinuxでプロセスファイルからバックグラウンド(およびフォアグラウンド)でプロセスを実行可能(生産環境および/または開発環境用)
- quicktype - JSON、JSON Schema、GraphQL、TypeScriptからモデルとシリアライザを生成
- shards.info - GitHubにCrystalコードを含むすべてのリポジトリをリストするウェブサービス。ソースはGitHubに公開されている
ツール
- ast_helper - パーサーおよびフォーマッタのデバッグを支援するツール
- crystal-base - CentOSベースのCrystal開発用Dockerイメージ
- crystal-dash-docset - Dashドキュメントセット生成ツール
- port_ruby_to_crystal - RubyコードをCrystalに移植しやすく、摩擦を減らすための正規表現置換用Rubyスクリプト
- public_suffix - Public Suffix List (https://publicsuffix.org/)を扱いやすくする小さなライブラリ
DevOps
- ansible-crystal - Crystalのインストール用Ansibleプレイブック
- DPPM - アプリケーションをパッケージとして簡単にインストール・管理できる汎用的な方法(主にLinux)
エディタープラグイン
- Acme:
- acmecrystal - acmeでCrystalコードをリフォーマット
- Atom
- crystal-tools - Crystalコンパイラの組み込みツールを有効化
- language-crystal-actual - AtomにおけるCrystal言語のサポート
- Emacs
- crystal-mode - EmacsにおけるCrystal言語のサポート(crystal-lang-tools/emacs-crystal-mode)
- Geany
- geany-crystal - Crystal言語におけるGeany editorのサポート
- IntelliJ IDEA
- intellij-crystal-lang - JetBrains IDEにおけるCrystal言語のサポート
- Lite-XL
- lite-plugin-crystal - Crystal言語におけるLite-XLエディタのサポート
- Spacemacs
- crystal-spacemacs-layer - SpacemacsにおけるCrystalの貢献レイヤー
- Sublime
- sublime-crystal - Sublime TextにおけるCrystalの文法ハイライト
- TextMate
- Crystal.tmbundle - Crystalの文法ハイライト、コンパイル、フォーマットコマンド、スニペット
- Vim
- vim-crystal - Crystal向けVimのファイルタイプサポート
- vim-slang - スラングテンプレートエンジン向けVimのファイルタイプサポート
- Visual Studio Code
- vscode-crystal-lang - エディタープラグインに関するCrystalライブラリ、サービス、ツール、または資料です。(
cr、ecr)
- vscode-crystal-lang - エディタープラグインに関するCrystalライブラリ、サービス、ツール、または資料です。(
LSP(Language Server Protocol)実装
- ameba-ls - Amebaのリントツール用の言語サーバー
- crystalline - Crystallineは、Crystal言語で書かれており、Crystal言語用の言語サーバープロトコルの実装
- scry - Crystal言語向けのコード分析サーバー(Language Server Protocol)
シェルプラグイン
- crun - Crystal実行:Crystal向けシェルバッファーラッパー
- crystal-zsh - .oh-my-zshプラグイン