Crystal-Addons
Odo-i Addons
Enterprise Infrastructure & Business Building Blocks for Crystal
开箱即用、无框架绑定、安全合规的企业级 Crystal 基础设施与业务构件单仓
💡 为什么选择 Odo Addons?
在构建现代 CRM、全渠道分销、医疗健康等复杂业务系统时,Crystal 生态通常缺乏经过真实生产环境与资金安全检验的标准化构件。Odo Addons 采用 Monorepo 统一研发与演进,提供 60 个相互解耦的高内聚 Shards。
- 🚀 零框架绑定(Zero Framework Lock-in):所有 Shard 纯标准库实现,不绑定 Kemal、Amber 或 Lucky,可无缝嵌入任何 Crystal 架构。
- 🔒 Fail-Closed 安全哲学:核心敏感数据天然脱敏、异常杜绝泄露 raw body/PII、HMAC 恒定时间比对、防重放与严格签名。
- ⚡ 原子并发与幂等保障:核心资金/异步回调统一接入
CallbackDedup与分布式租约;延迟队列与预约锁采用原子 Lua 状态机。 - 🎯 强类型与严格精度:金额全局整数(分)计算,规则引擎 AST 保持 64 位大整数不降级,除零/模零严格防御。
📦 模块全景图 (Shard Matrix)
每个子目录均为独立可引用的 Shard。状态遵循 稳定 与 可用。
💳 支付与交易结算
| 模块 | 状态 | 功能简介 |
|---|---|---|
core/ |
稳定 | HTTP 传输 / 统一加密 / 金额单位 / 时钟源 / 重试策略与 API 契约 |
wechat_pay/ |
可用 | 微信支付 APIv3:JSAPI/Native 下单、退款、证书自动下载与回调验签解密 |
alipay/ |
可用 | 支付宝 OpenAPI:Page 支付 / 预下单 / 退款 / RSA2 异步通知与公钥证书 |
stripe/ |
可用 | 跨境支付:PaymentIntent、Checkout 收银台、退款、Webhook 验签与版本锁定 |
profit_sharing/ |
可用 | 微信与支付宝分账中台:接收方绑定、请求分账、分账查询与完结解冻 |
payout/ |
可用 | 企业付款中台:微信商家转账到零钱、支付宝单笔转账至账户/银行卡 |
fapiao/ |
可用 | 电子发票中台:数电发票申请、普票/专票开具、诺诺网 OpenAPI 查询与冲红 |
chs_pay/ |
可用 | 国家医保移动支付:医保电子凭证核验、混合下单、退款与异步验签 |
card_bin/ |
可用 | 银行卡 BIN 本地识别:发卡行与卡种解析、Luhn 校验与机构回退 |
payroll_tax/ |
可用 | 薪税个税公式库:居民工资薪金累计预扣、劳务报酬与全年一次性奖金计算 |
🔐 身份、权限与认证
| 模块 | 状态 | 功能简介 |
|---|---|---|
pbac/ |
稳定 | 策略式属性权限求值引擎(ABAC/PBAC,默认拒绝,Deny 严格优先) |
idp/ |
可用 | 身份提供商:本地账号会话体系 + 企业级 SAML 2.0 SP/IdP 双向单点登录 |
totp/ |
可用 | 双因子认证:RFC 6238 TOTP、RFC 4226 HOTP 令牌生成与 Authenticator 绑定 |
oauth/ |
可用 | 统一授权登录:微信公众号/开放平台/小程序 + 支付宝 OAuth 2.0 |
realname/ |
可用 | 实名核验:身份证二要素 / 手机运营商三要素(阿里云 + 腾讯云双通道) |
enterprise_info/ |
可用 | 工商背调:统一社会信用代码校验、企业照面数据查询与三要素合规核验 |
captcha/ |
可用 | 人机验证核验:极验 Geetest v4 / 阿里云验证码 2.0 / 腾讯天御验证码 |
☁️ 通讯、消息与企业协作
| 模块 | 状态 | 功能简介 |
|---|---|---|
sms/ |
可用 | 多云短信中台:阿里云 ACS3 签名 + 腾讯云 TC3 签名单发与模版消息 |
mail/ |
可用 | 邮件投递服务:RFC 5322 富文本与附件、Resend 与阿里云 DirectMail |
push/ |
可用 | 统一移动推送:极光 JPush / 个推 Getui / Google FCM HTTP v1 / APNs |
oss/ |
可用 | 阿里云 OSS 对象存储:Put/Get/Delete、V4 签名授权与上传回调验签 |
wecom/ |
可用 | 企业微信:群机器人 Webhook、应用消息推送、OAuth userid 与外部联系人 |
wechat_kf/ |
可用 | 微信客服:客服账号/客服链接管理、会话消息收发、事件回调与 sync_msg |
wechat_mp/ |
可用 | 微信公众号:行业模版消息下发、AccessToken 托管与关注事件处理 |
wechat_wxa/ |
可用 | 微信小程序:手机号快速验证、开放数据解密、小程序码生成与发货上报 |
dingtalk/ |
可用 | 阿里钉钉:机器人加签 Webhook、企业工作通知下发与免登 OAuth |
feishu/ |
可用 | 飞书开放平台:自定义机器人 Webhook、应用私聊/群聊 IM 与 OAuth 鉴权 |
virtual_number/ |
可用 | 隐私号与智能语音:阿里/腾讯云 AXB 隐私绑定、录音提取与 TTS 语音外呼 |
douyin/ |
可用 | 抖音生活服务:小程序 code2Session 登录、团购券核销与开放平台 Webhook |
ad_conversion/ |
可用 | 广告转化回传:巨量引擎 Conversion v2 与腾讯广告 Marketing API v3.0 |
express/ |
可用 | 物流快递中台:快递 100 轨迹即时查询、地图轨迹解析与异步物流推送订阅 |
🏥 医疗与健康中台
| 模块 | 状态 | 功能简介 |
|---|---|---|
eprescription/ |
可用 | 电子处方中台:规范处方结构、状态机流转、超量配伍校验与监管平台报送 |
drug_trace/ |
可用 | 药品追溯与器械识别:中国药品追溯码(20位)与 GS1 医疗器械 UDI 离线解析 |
hl7_v2/ |
可用 | 医院互联协议:MLLP 传输层封装与 HL7 v2.x 管道报文(ADT/ORM/ORU/ACK) |
fhir/ |
可用 | HL7 FHIR R4 标准:Patient/Encounter/Condition/Observation 结构与 Bundle 交换 |
icd_codes/ |
可用 | 临床疾病编码:ICD-10 / ICD-11 样本字典检索与拼音首字母联想 |
lab_report/ |
可用 | 检验报告分析:参考区间动态比对、危急值自动拦截告警与多期趋势分析 |
dicom/ |
可用 | 医学影像解析:DICM 格式头校验、CT/MR/CR 核心元数据提取与 Sequence 防御 |
medical_ca/ |
可用 | 医疗电子病历存证:医护身份绑定、SHA-256 结构摘要与本地防篡改存证信封 |
medical_cert/ |
可用 | 医护执业资质:医师/护士资格证编号离线格式校验与资质查验接口 |
medical_calc/ |
可用 | 临床医学计算:2021 CKD-EPI/MDRD eGFR、CrCl、BMI/BSA、CHA2DS2-VASc 与 MELD |
medical_scale/ |
可用 | 临床量表评估:PHQ-9 抑郁危机干预、GAD-7 焦虑、VAS 疼痛与 Morse/Braden 护理 |
⚙️ 引擎、算法与调度
| 模块 | 状态 | 功能简介 |
|---|---|---|
rule_engine/ |
可用 | 规则引擎:分销多级佣金阶梯、营销满减满折促销与 64 位整型安全 AST 求值 |
delay_queue/ |
可用 | 分布式延迟队列:内存队列 + 原子 Redis Lua 队列(防任务丢失与并发争抢) |
snowflake/ |
可用 | 分布式唯一 ID:64 位 Snowflake、NTP 时钟回拨保护与格式化业务单号生成 |
shortlink/ |
可用 | 营销短链中台:Base62 编解码、Feistel 混淆、HMAC 防篡改签名与渠道归因 |
ride_dispatch/ |
可用 | 网约出行调度构件:GeoHash 空间分块、动态计价器、行程状态机与轨迹抽稀 |
table_reserve/ |
可用 | 餐饮桌台预约引擎:时隙冲突判定、状态机与 ReservationStore 原子防超卖 |
ai_gateway/ |
可用 | 大模型统一网关:OpenAI Chat Completions 协议兼容层与多模型适配 |
amap/ |
可用 | 地理位置中台:高德/腾讯/百度/Google 地图统一适配与 WGS84/GCJ02/BD09 互转 |
🛡️ 数据安全、媒体与工具
| 模块 | 状态 | 功能简介 |
|---|---|---|
field_crypto/ |
可用 | 敏感数据安全:手机/身份证掩码脱敏、字段级 AES-256-GCM 加密与盲索引 |
content_security/ |
可用 | 文本内容安全:DFA 高性能敏感词过滤、智能脱敏与微信小程序内容安全审核 |
esign/ |
可用 | 电子合同中台:e签宝 OpenAPI v3 与腾讯电子签 ESS API 3.0 签署流程 |
media_watermark/ |
可用 | 媒体版权安全:防录屏动态跑马灯水印生成与阿里/腾讯云 VOD 防盗链签名 |
xlsx/ |
可用 | 电子表格解析:内存型 OpenXML XLSX 读写与 ReaderLimits 内存放大防御 |
qrcode/ |
可用 | 二维码生成器:QR 规范矩阵编码、SVG 矢量渲染与纯 Crystal PNG 输出 |
poster/ |
可用 | 分销裂变海报:轻量 SVG 模板组合引擎、安全图片嵌入与海报生成 |
pcas/ |
可用 | 中国行政区划:省/市/区/街道编码样本与中文非结构化地址分词解析 |
pinyin/ |
可用 | 汉字拼音工具:常用汉字多音字拼音转换、首字母提取与声调标注 |
🚀 快速上手 (Quick Start)
1. 在业务项目的 shard.yml 中按需声明依赖
name: my_crm_service
version: 0.1.0
dependencies:
core:
path: ../addons/core
wechat_pay:
path: ../addons/wechat_pay
pbac:
path: ../addons/pbac
delay_queue:
path: ../addons/delay_queue
2. 编写业务逻辑
require "wechat_pay"
require "pbac"
require "delay_queue"
# 1. 权限引擎策略判定
policy = Odo::Pbac::Policy.new(
name: "order_access",
effect: Odo::Pbac::Effect::Allow,
actions: ["orders:refund"],
resources: ["order:*"]
)
ctx = Odo::Pbac::Context.new(action: "orders:refund", resource: "order:1001")
puts "Permission granted: #{policy.evaluate(ctx).allow?}"
# 2. 延迟任务队列
backend = Odo::DelayQueue::MemoryBackend.new
job = Odo::DelayQueue.push(
topic: "order_timeout",
payload: %({"order_id": "ORD-2026-999"}),
delay: 15.minutes,
backend: backend
)
puts "Enqueued delay job: #{job.id}"
🛠️ 本地开发与测试
运行全量测试套件(覆盖全部 60 个 Shards + 消费者跨模块集成测试):
# 全量测试门禁
bash test/run.sh
# 运行特定 Shard 测试
cd wechat_pay && crystal spec
# 代码格式化
crystal tool format
📄 许可证与贡献
- 仓库采用 GNU AGPL v3.0 or later 许可证。
- 开发指南与提交约定参见
AGENT.md。
Repository
Crystal-Addons
Owner
Statistic
- 0
- 0
- 0
- 0
- 0
- about 1 hour ago
- August 24, 2026
License
GNU Affero General Public License v3.0
Links
Synced at
Mon, 24 Aug 2026 07:20:21 GMT
Languages