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

edwingeng · 2021-01-19 14:03:19 · 1809 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-01-19 14:03:19 的主题,其中的信息可能已经有所发展或是发生改变。

近期我司(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


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1809 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传