Baboon: Data Modeling with Automatic Evolutions and tagless binary codecs
3 months ago
- #Compiler
- #Schema Evolution
- #Data Modeling
- Baboon是一种极简数据建模语言及编译器,具有符合人体工学的声明式模式语法。
- 特性:通过+、-、^运算符实现基于集合的结构化继承。
- 自动派生JSON和UEBA(超高效二进制聚合)编解码器。
- 具备演进感知的代码生成能力,支持迁移和手动操作存根。
- 支持结构继承与名义继承、命名空间、包含和导入功能。
- 集合类型包含opt(可选值)、lst(列表)、set(集合)、map(映射)及时间戳/UID原始类型。
- 代码生成目标:C#、Scala,未来计划支持更多语言。
- 通过去重C#输出降低二进制文件体积。
- 提供Intellij Idea插件和VSCode/VSCodium扩展支持。
- 当前限制:无模板功能、名义继承支持有限、不支持新类型/类型别名。
- 标有(*)的条目未来可能改进。
- 未被根类型引用的类型会从编译器输出中消除。
- 外部类型需要自定义编解码器并谨慎处理。
- 项目使用mudyla进行构建编排,支持多种构建和测试命令。