Crystal

awesome-crystal

Awesome Crystal

Awesome Build Status

精选的 Crystal 代码和资源列表. 灵感来自 awesomeawesome-awesomeness. 目标是使项目大部分稳定且对社区有用.

Search Crystal Shards 或关注公告 Crystal [ANN] 了解更多信息.

欢迎投稿. 请快速浏览一下 contribution guidelines 第一的.

Algorithms and Data structures

Blockchain

  • Axentro - 自定义区块链平台
  • Cocol - 一个最小的区块链测试平台
  • secp256k1.cr - 公私钥密码学中使用的椭圆曲线

C bindings

Caching

CLI Builders

  • admiral - 用于编写命令行界面的强大 DSL
  • clicr - 一个简单的声明式命令行界面构建器
  • clim - Slim 命令行界面构建器
  • commander - 命令行界面构建器
  • Keimeno - Crystal 中的轻量级文本用户界面库
  • OptionParser - 命令行选项处理(Crystal stdlib)
  • Phreak - OptionParser 风格的高度灵活的 Crystal CLI 构建器

CLI Utils

  • climate - 使您的 CLI 输出着色的小工具
  • coin - 通过命令行执行货币转换的应用程序 Fixer API
  • cride - 轻量级 CLI 文本编辑器/IDE
  • lff - 命令行中简单明了的大文件查找器实用程序
  • oq - 一个高性能的、可移植的 jq 包装器,以促进 JSON 以外格式的使用和输出; 使用 jq 过滤器来转换数据
  • progress_bar.cr - 一个简单且可定制的进度条
  • tablo - 一个灵活的终端表生成器
  • tallboy - 生成 ASCII 字符表,支持跨越多列的单元格

Code Analysis and Metrics

  • ameba - 静态代码分析工具
  • linguist.cr - 使用多种方式查找文件中使用的编程语言,基于 Github 的语言学家

Compression

  • Crystar - Tar 存档格式的读者和作者
  • Gzip - gzip 格式的读者和作者 (Crystal stdlib)
  • polylines.cr — compression of series of coordinates
  • snappy - 用于 Crystal 的 Snappy 压缩格式读写器
  • Zip - zip 格式的读者和作者 (Crystal stdlib)
  • Zlib - zlib 格式的读取器和写入器(Crystal stdlib)
  • zstd.cr - 绑定 Zstandard 压缩库

Configuration

  • cr-dotenv - 加载 .env 文件
  • Envy - 从 YAML 加载环境变量
  • envyable - 一个简单的 YAML 到 ENV 配置加载器
  • habitat - 为您的类和模块键入安全配置
  • totem - 加载和解析 JSON、YAML、dotenv 格式的配置

Converters

  • base62.cr - Base62 编码器/解码器,非常适合 url-shortening
  • money - 轻松处理货币和货币兑换(几乎完整的港口 RubyMoney)
  • sass.cr - 将 SASS/SCSS 编译为 CSS (libsass 捆绑)
  • wkhtmltopdf-crystal - libwkhtmltox 的绑定/包装器(HTML 到 PDF/图像转换器)

Cryptography

  • cmac - 基于密码的消息认证代码 (CMAC) 的 Crystal 实现
  • sodium.cr - libsodium 加密 API 的水晶包装器

Data Formats

  • BinData - 二进制数据解析器助手 ASN.1 解析器
  • config.cr - 易于使用的配置格式解析器
  • crinder - 基于类的 json 渲染器
  • Crystalizer -(反)序列化任何 Crystal 对象; 支持开箱即用的 JSON、YAML 和字节格式
  • CSV - 解析和生成逗号分隔值 (Crystal stdlib)
  • front_matter.cr - 将文件前端内容与其内容分开
  • geoip2.cr - GeoIP2 阅读器
  • HAR - HAR(HTTP 存档)解析器
  • INI - INI 文件解析器 (Crystal stdlib)
  • JSON - 解析和生成 JSON 文档 (Crystal stdlib)
  • JSON::OnSteroids - 轻松处理和修改 JSON 文档
  • maxminddb.cr - MaxMindDB 阅读器
  • toml.cr - TOML 解析器
  • XML - 解析和生成 XML 文档 (Crystal stdlib)
  • YAML - 解析和生成 YAML 文档(Crystal stdlib)

Data Generators

  • faker - 用于生成假数据的库
  • hashids.cr - 从一个或多个数字生成类似 YouTube 的 id 的库
  • prime - 素数生成器

Database Drivers/Clients

Database Tools

  • migrate - 带有事务的更简单的数据库迁移工具
  • queryit - 基于 SQL 查询运行器的无设置终端

Debugging

  • backtracer.cr - Shard 旨在协助将回溯解析为结构化形式
  • debug.cr - 用于pp风格调试的debug!(…)

Dependency Injection

Email

  • carbon - 有趣、可测试且基于适配器的电子邮件库
  • crystal-email - 简单的电子邮件发送库
  • CrystalEmail - 符合 RFC 标准的电子邮件验证器
  • sendgrid.cr - 简单的 Sendgrid 客户端

Environment Management

Examples and funny stuff

Framework Components

Game Development

GUI Development

HTML Builders

  • form_builder.cr - 用于 Crystal 的简单 HTML 表单生成器,内置对许多流行的 UI 库(例如 Bootstrap)的支持

HTML/XML Parsing

HTTP

Image processing

Implementations/Compilers

  • charly - 查理编程语言
  • cltk - Ruby 语言工具包的水晶端口
  • crisp - 用 Crystal 实现的 Lisp 方言
  • LinCAS-lang - 一种用于科学计算的编程语言
  • mint-lang - 一种令人耳目一新的前端 Web 编程语言
  • myst-lang - 一种实用的动态语言,旨在尽可能轻松有效地编写和理解
  • runic-lang - 设计中的玩具语言

Logging and monitoring

Machine Learning

Markdown/Text Processors

  • markd - 另一个为速度而构建的降价解析器,符合 CommonMark 规范

Misc

  • aasm.cr - 易于使用的水晶类有限状态机
  • any_hash.cr - 具有更好 JSON::Any 的递归哈希
  • anyolite - 具有简单绑定的完整 mruby 解释器,允许在项目中轻松支持脚本
  • burocracia.cr - burocracia.cr 用于验证、生成和格式化巴西 burocracias(例如 CPF、CNPJ 和 CEP)的无依赖分片
  • callbacks - 富有表现力的回调模块
  • circuit_breaker - 断路器模式的实现
  • CrSignals - 信号/插槽通知库
  • crystal-binary_parser - 二进制解析器
  • crystal-web-framework-stars - Crystal 的 Web 框架,在 Github 上最受关注
  • crz - 函数式编程库
  • emoji.cr - 表情符号库
  • gphoto2-web.cr - libgphoto2 的 Web API
  • i18n.cr - 国际化分片
  • immutable - 线程安全、持久、不可变集合的实现
  • iterm2 - 使用 ITerm2 内联图像协议在终端内显示图像
  • monads - Monad 实现
  • pinger - 无需 sudo 即可 Ping IP 地址和 DNS 条目
  • port_midi - PortMIDI 跨平台 MIDI I/O 库的 Crystal C 绑定
  • retriable.cr - 重试失败代码块的简单 DSL
  • serf-handler.cr - 用于构建 Serf 处理程序的框架,具有一套有用​​的内置功能
  • simple_retry - 用于重试失败代码块的简单工具
  • sslscan.cr - 水晶碎片包装 rbsec/sslscan 实用程序
  • version_tools - 依赖于版本的行为,在编译时指定
  • wafalyzer - Web 应用程序防火墙 (WAF) 检测器 - 分片 + cli
  • zaru_crystal - 文件名清理

Network Protocols

Networking

ORM/ODM Extensions

  • avram - 用于读取、写入和迁移 Postgres 数据库的数据库包装器
  • clear - ORM 专用于 PostgreSQL,但具有高级功能
  • crecto - 数据库包装器,基于 Ecto
  • granite - 用于 Postgres、Mysql、Sqlite 的 ORM
  • jennifer.cr - 使用灵活的查询链构建器和迁移系统实现 Active Record 模式
  • onyx-sql - DB-agnostic SQL ORM,带有漂亮的 DSL 和类型安全的查询构建器
  • rethinkdb-orm - RethinkDB / RebirthDB 的 ORM

Package Management

  • shards - Crystal 的依赖管理器

Processes and Threads

  • await_async - 在 Crystal Lang 中添加关键字 await & async
  • neph - 可以同时执行作业的现代命令行作业处理器
  • promise - 带有类型推断的 Promise 实现
  • werk - 具有并发支持的死简单任务运行器,非常适合本地 CI

Project Generators

  • crystal_lib - 本地库的自动绑定生成器
  • fez - Kemal 应用程序生成器
  • libgen - 使用 JSON/YAML 文件配置的自动绑定生成器

Queues and Messaging

Routing

  • orion - 一个最小的、rails 风格的路由库
  • router.cr - 用于 HTTP::Server 的最小但功能强大的 http 路由器

Scheduling

  • crystime - 高级时间、日历、日程和提醒库
  • schedule.cr - 运行周期性任务
  • tasker - 高精度调度程序,包括时区感知 cron 作业

Science and Data analysis

  • alea - 可重复抽样、CDF 和其他实用程序来处理概率分布
  • ishi - 图形绘图包,带有一个小的 API 和由 gnuplot 提供支持的合理默认值
  • linalg - 受 MATLAB 和 SciPy.linalg 启发的线性代数库
  • num.cr - 支持N维数据的数值计算库
  • predict.cr - 使用 sgp4 模型的卫星预测库
  • quartz - 建模和仿真框架
  • hermes - ElastiSearch 的数据映射器模式实现
  • soegen - 水晶的 Elasticsearch 客户端类似于红宝石的担架宝石

Serverless Computing

  • crystal_openfaas - 使水晶成为 OpenFaaS 中的一等公民的模板
  • FaaStRuby - Ruby 和 Crystal 的无服务器软件开发平台
  • secrets-env - 扩展 ENV 模块以读取由 docker / kubernetes secrets 和其他编排工具注入的值

System

  • baked_file_system - 虚拟文件系统实现
  • hardware - 获取正在运行的操作系统及其进程的 CPU、内存和网络信息

Task management

  • cake - 可用于生产的 Make-like 实用工具
  • sam - 另一个具有命名空间和参数系统的类似 Rake 的任务管理器

Template Engine

Testing

Third-party APIs

Validation

Web Frameworks

  • amber - 开源高效且内聚的网络应用程序框架
  • Athena - 由可重复使用的独立组件组成的 Web 框架
  • grip - 用于编写强大的 Web 应用程序的微框架
  • kemal - 闪电般快速,超级简单的 Web 框架. 灵感来自 Sinatra
  • lucky - 尽早发现错误,忘记大多数性能问题,将更多时间花在代码上而不是调试和编写测试上
  • runcobo - 一个简单、直观、一致的DSL的api框架,使用jbuilder渲染json
  • Shivneri - 基于组件的 MVC web 框架,用于水晶目标良好的代码结构、模块化和性能
  • spider-gazelle - 一个 Rails esque web 框架,专注于速度和可扩展性

Community

Unofficial

Resources

Official Documentation Translations

Services and Apps

  • carc.in - 运行您的代码并显示结果的 Web 服务
  • Crank - 基于 Procfile 的应用程序管理器(如 Foreman)
  • cry - 能够以类似于 Ruby 的 pry 编辑的方式执行水晶代码
  • Crystal [ANN] - 宣布新项目、博客文章、版本更新或任何其他 Crystal 作品
  • crystalshards.herokuapp.com, crystalshards.xyz - 列出所有可用水晶碎片的 Web 服务
  • Crystular - 正则表达式测试器
  • DeBot - 用 Crystal 编写的 IRC 机器人
  • icr - Crystal 的交互式控制台(如 Ruby 的 IRB)
  • Invidious - Invidious 是 YouTube 的替代前端
  • mpngin - 具有简单统计数据的 URL 缩短器
  • quicktype - 从 JSON、JSON Schema、GraphQL 和 TypeScript 生成模型和序列化程序
  • shards.info - 列出 GitHub 上所有包含 Crystal 代码的存储库的 Web 服务. 来源可在 GitHub

Tools

DevOps

  • ansible-crystal - 用于安装水晶的 Ansible 剧本
  • DPPM - 一种将应用程序作为包安装和管理的简单、通用的方法(主要是 Linux)

Editor Plugins

LSP Language Server Protocol Implementations

Shell plugins

  • crun - Crystal Run:水晶的shebang包装器
  • crystal-zsh - .oh-my-zsh 插件