[分享创造] 给 sing-box config 写了一套完整的 TypeScript 类型

以前需要同时维护几份 sing-box config 时搓的东西,目前已经维护一年半了。

  • 主要特点是通过 ts 的泛型校验一下 tag ,sing-box tag 太多了,写的时候经常忘。

  • 用 ts 的话可以看一下 playground ,其实就是把配置拆碎,然后组合成一份 sing-box config ,这样子维护几份 sing-box config 就比较省力(因为几份 config 里会重用大部分 rule-set, outbounds 等等)。

  • 如果没这个需求也可以直接用 json schema ,直接在现有的 json 里加上就好了,在 LSP 加持下写 config 也简单不少。

  • 维护应该是最积极,每个 sing-box alpha 版本都有,喜欢追着升级的可以用。

虽然说是纯粹的脏活累活,不过有用的话还是求一下 star🙏。

项目地址: https://github.com/jiang-zhexin/typebox

不过纯粹个人维护,精力有限,如果和 sing-box 可接受的 config 有出入,欢迎 issue / PR 。