Funplus 开源工具 archivist:根据配置数据(JSON)自动生成数据结构

近期我司(Funplus Kingsgroup)开源了一个项目:archivist,可大幅简化配置系统的维护,尤其适用于游戏行业,我司多个项目都在用。

这个项目由两部分组成:1)代码生成器,根据配置数据(JSON)自动生成数据结构,可以为各种编程语言服务;2)Golang 运行库,用以简化配置加载、热更。

代码生成器支持:

  • 自动推测 JSON 字段的数据类型
  • 通过 .meta 文件自定义 JSON 字段的数据类型,比如,把 struct 替换成 map[string]...
  • 通过 .meta 文件支持扩展类型,包括引用 reference,日期时间 datetime,时间长度 duration 和国际化字符串 i18n
  • 除了 .json,额外支持 .js 文件(方便手工编辑)
  • paths 子命令:显式所有字段的路径和数据类型
  • orphan 子命令:找出并删除『孤儿』文件,让数据文件、代码文件保持一致
  • 自定义代码模板,以便生成各种编程语言的代码

Golang 运行库支持:

  • 把加载配置简化至几行代码
  • 在启动时选择配置 group 和 subgroup
  • 支持各种配置覆盖,包括文件级的和内容级的
  • 支持扩展类型,包括引用 reference,日期时间 datetime,时间长度 duration 和国际化字符串 i18n
  • 支持热更(通过原子操作切换到全套新配置)
  • 支持补丁形式的热更
  • 支持向后兼容检查
  • 支持加载白名单、黑名单
  • 支持配置扩展,方便运行时整理配置
  • 线程安全

开源地址:

https://github.com/kingsgroupos/archivist

共 0 个回复