zfl9 / chinadns-ng

chinadns 重构增强版,支持域名分流、ipset/nftset、UDP/TCP/DoT
GNU Affero General Public License v3.0
1.03k stars 179 forks source link

TODO #178

Open zfl9 opened 2 weeks ago

zfl9 commented 2 weeks ago
hawkbee commented 2 weeks ago

是否会考虑集成异步事件库,虽然可读性会差一些,好处是可以不依赖于语言特性,类似:

libxev zig-aio

zfl9 commented 2 weeks ago

通用事件循环库会带来更多代码和开销,更重要的是,chinadns-ng 在设计上就是在 linux 上运行的(ipset/nftset)。

因此通用事件循环库就没有必要了,因为我只需要考虑 epoll API,目前的 EvLoop.zig 就是对它的极简封装(只有必要功能)。

zfl9 commented 2 weeks ago

现在我也准备不依赖 async 语言特性了,改为自己手动实现(状态机)。 除非后面打算跨平台(也许永远不会),才会引入 libev 这样的轻量级 C 事件库。

hawkbee commented 2 weeks ago

嗯,跨平台不是优先项,事件库就是抽象了一层,方便适配,比如现在linux又有io_uring了,适配支持就可以在抽象层之上了

hapood commented 1 week ago

期待能早日完工,我有空也学习下zig语言,希望以后可以一起改进这个项目。