docs: update README with 4000+ LOC stats and extended subpackage layout
面向数据生产方与消费方的 MoonBit 数据契约与模式演化工具 (MoonBit Data Contract & Schema Evolution Tool)。
moon-data-contract 旨在解决现代分布式数据管道与微服务架构中的 Schema 变更越界、数据生产者与消费者契约不一致、破坏性变更(Breaking Changes)无感知等核心痛点。
moon-data-contract
丰富的契约数据类型与规则 (Type & Subtyping):
Bool
Int
Int64
Double
String
Bytes
Timestamp
Enum
Array
Map
Optional
Struct
Union
required
primary_key
numeric
string_rule
array_rule
PII
数据 Payload 校验与强制转换引擎 (Validator & Coercion):
"123"
123
"true"
true
Schema AST 级 Diff 与语义版本自动推导 (SemVer & Diff):
演化兼容性与传递策略检查 (Transitive Compatibility):
BACKWARD
FORWARD
FULL
BACKWARD_TRANSITIVE
FORWARD_TRANSITIVE
FULL_TRANSITIVE
Schema 注册表与依赖拓扑图 (Registry & DAG):
多端导出器与 Mock 生成器 (Exporters & Generators):
.proto
interface
.avsc
多格式报告与 CI 校验 (Reporters & CI Integration):
flowchart TD A[数据契约规范 / Schema Spec] -->|AST 拆解| B[types & parser] B -->|规则约束| C[constraints & linter] B -->|数据 Payload| D[validator & coercion] B -->|版本演化 v1 vs v2| E[diff & semver] E -->|兼容性判定| F[compat & transitive] F -->|注册与依赖DAG| G[registry & dependency graph] G -->|多端生成导出| H[generators & reporters] H --> I[SQL / Proto / TS / Avro / Graphviz] H --> J[Markdown / HTML / JUnit XML Report]
moon-data-contract/ ├── moon.mod # 模块配置文件 ├── LICENSE # Apache-2.0 许可证 ├── README.md # 项目文档与来源说明 ├── .github/workflows/ci.yml # 三端 GitHub Actions CI 工作流 ├── lib/ # 核心逻辑包体系 │ ├── types/ # 类型系统、SemVer 语义版本与字段规则 │ ├── constraints/ # 数值区间、正则/格式(Email/UUID/IPv4)与数组约束 │ ├── generators/ # SQL / Proto / TS / Avro / Graphviz / Mock 导出器 │ ├── report/ # Markdown / HTML / JUnit XML 报告生成器 │ ├── cli/ # CLI 命令行参数解析与命令路由 │ ├── types.mbt # 基础类型抽象 │ ├── parser.mbt # JSON 序列化与解析器 │ ├── validator.mbt # 契约数据校验引擎 │ ├── coercion_engine.mbt # 类型自动转换引擎 │ ├── strict_validator.mbt # 严格模式校验器 │ ├── diff.mbt # Schema 跨版本对比算法 │ ├── ast_diff.mbt # AST 级对比与节点分析 │ ├── breaking_rules.mbt # 破坏性变更规则分类器 │ ├── version_calculator.mbt # SemVer Bump 推导器 │ ├── compat.mbt # 兼容性评估引擎 │ ├── transitive_compat.mbt # 传递兼容性评估引擎 │ ├── migration_matrix.mbt # 演化兼容性矩阵生成器 │ ├── registry.mbt # Schema 注册表 │ ├── schema_cache.mbt # LRU Schema 缓存 │ ├── schema_repository.mbt # 仓库与主题检索 │ ├── dependency_graph.mbt # 契约依赖 DAG 与拓扑排序 │ ├── file_storage.mbt # 文件持久化存储 │ ├── patch_applier.mbt # 契约 Patch 补丁应用器 │ ├── contract_linter.mbt # 代码规范与文档 Check │ └── *_test.mbt # 49 组全量测试文件 └── cmd/ └── main/ # CLI 可执行文件入口包
.mbt
moon check
moon test
moon fmt --check
moon info
# 检查语法与类型 moon check # 执行 49 组单元测试与集成测试 moon test # 检查代码格式化 moon fmt --check # 运行 CLI 可执行程序 moon run cmd/main
声明: 本项目 moon-data-contract (MoonBit 数据契约与模式演化工具) 专为 MoonBit 2026 开源创新大赛 (OSC 2026) 独立开发与制作。 本仓库所有源码、架构设计、单元测试与文档均为作者原创编写。 项目不存在任何未授权的第三方代码抄袭或第三方代码库直接搬运。 项目提交历史真实连贯,遵循大赛参赛指南规范。
声明: 本项目 moon-data-contract (MoonBit 数据契约与模式演化工具) 专为 MoonBit 2026 开源创新大赛 (OSC 2026) 独立开发与制作。
本项目采用 Apache License 2.0 开源许可证。
面向数据生产方与消费方,定义字段类型、必填约束、枚举值、范围限制、主键规则和兼容策略。实现 Schema 注册、版本比较、向前/向后兼容检查、变更报告、JSON 导入导出和 CI 校验;后续可扩展到消息队列、数据仓库表和数据产品契约。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
moon-data-contract | MoonBit 数据契约与模式演化工具
面向数据生产方与消费方的 MoonBit 数据契约与模式演化工具 (MoonBit Data Contract & Schema Evolution Tool)。
moon-data-contract旨在解决现代分布式数据管道与微服务架构中的 Schema 变更越界、数据生产者与消费者契约不一致、破坏性变更(Breaking Changes)无感知等核心痛点。🌟 核心功能特性
丰富的契约数据类型与规则 (Type & Subtyping):
Bool,Int,Int64,Double,String,Bytes,TimestampEnum,Array,Map,Optional,Struct,Unionrequired必填性、primary_key主键规则、numeric数值区间、string_rule(Email/UUID/IPv4/IPv6 正则格式)、array_rule(元素唯一性/数量)、PII隐私合规分类。数据 Payload 校验与强制转换引擎 (Validator & Coercion):
"123"→123,"true"→true)。Schema AST 级 Diff 与语义版本自动推导 (SemVer & Diff):
演化兼容性与传递策略检查 (Transitive Compatibility):
BACKWARD,FORWARD,FULL,BACKWARD_TRANSITIVE,FORWARD_TRANSITIVE,FULL_TRANSITIVE演化规则。Schema 注册表与依赖拓扑图 (Registry & DAG):
多端导出器与 Mock 生成器 (Exporters & Generators):
.proto声明。interface声明。.avsc模式 JSON。多格式报告与 CI 校验 (Reporters & CI Integration):
🏗️ 架构设计
flowchart TD A[数据契约规范 / Schema Spec] -->|AST 拆解| B[types & parser] B -->|规则约束| C[constraints & linter] B -->|数据 Payload| D[validator & coercion] B -->|版本演化 v1 vs v2| E[diff & semver] E -->|兼容性判定| F[compat & transitive] F -->|注册与依赖DAG| G[registry & dependency graph] G -->|多端生成导出| H[generators & reporters] H --> I[SQL / Proto / TS / Avro / Graphviz] H --> J[Markdown / HTML / JUnit XML Report]📁 目录结构与代码规模 (4000+ LOC)
📊 代码规模汇总
.mbt): 4,023 行 (符合组委会 4000+ LOC 要求)moon check,moon test,moon fmt --check,moon info100% 零警告零错误通过。🚀 快速开始
📜 来源说明 (Source Attribution Statement)
📄 许可证 (License)
本项目采用 Apache License 2.0 开源许可证。