比如 clash meta ,singbox ,他们可以支持 vless 等各种协议 但是却有可能跟不上那些协议的最新版本。比如这两好像都不支持 xhttp 。

他们为什么不直接把这些协议对应的可执行文件打包到项目里面,直接调用岂不是省事?
举报· 1030 次点击
登录 注册 站外分享
9 条回复  
phpc 初学 3 天前
frayNG 就是直接调用其他可执行文件的
morpheuszero2023 小成 3 天前
开源社区的东西有个问题,就是开发者偶尔会在新版本中修改 API ,或者把配置文件的参数改了,导致原来能用的,更新之后就不能用了。
xiaozecn 小成 3 天前
@morpheuszero2023 就比如最近上游 GEO 规则更改了一个规则的名称,把 geosite:category-ai-chat-!cn 更名为 geosite:category-ai-!cn 。😂
Kinnice 初学 3 天前
因为你说的这些代理客户端都是针对某种内核开发的,对接的也是指定内核的 API 。 因为一个两个特殊的协议搞一个内核大杂烩,对接一堆 api/cmdline ,后台起五六个 core ,不值当也没必要。
Kinnice 初学 3 天前
@morpheuszero2023 可以自己 fork 或者锁版本不更新,不能既要又要吧
Kinnice 初学 3 天前
还有就是协议是协议,内核是内核,客户端是客户端,不是一个东西。协议是规范不是实体,内核实现了协议,客户端调用内核。
tuki 初学 3 天前
这些软件的作者之间有矛盾,所以不太可能集成对方的软件。而且这些软件的开源协议也不一样
ostrichb 小成 3 天前
其他的不清楚,但貌似 iOS 的 App 不能集成現有的執行檔,必須自己把協定進行實作(如果說法有誤歡迎糾正)
w568w 小成 3 天前
> 为什么不直接把这些协议对应的可执行文件打包到项目里面 你说的大概是指调库,不是调可执行文件。 有几个原因: 1. 各个协议实现的抽象等级不一样,很难统一接口。A 协议开发者发布的库打包了 dns 解析器,B 协议不支持自定义 DNS ,C 协议依赖系统的 TLS 、不支持自定义证书,D 协议完全解离了网络逻辑,要自己实现请求接口……你怎么办?打包在一起,小则行为不一致、令用户迷惑,大则功能完全不能用; 2. 增加调试成本。现在用户来报告 bug 时,你还得先搞明白到底是你写错了,还是引用的上游库有 bug 。就算不是你的问题,你还得重新向上游报告 bug 、等上游修复、集成新的版本……一套流程下来,用户早就不用了(如果 bug 影响到你自己,你估计也不想用了); 3. 小圈子政治,这个不仅仅是国内开发者,但国内确实更明显,代理软件这种开发难度高、用户群体大的更是如此。一群小白在一起跪舔一个(顶着二次元头像的)大佬开发者,甚至攻击其他代理软件、嘲笑其他协议,基本是国内一部分代理项目的常态。
返回顶部