V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lanthora
V2EX  ›  宽带症候群

给各位汇报一下组网软件的新进展

  •  
  •   lanthora · 196 天前 · 2479 次点击
    这是一个创建于 196 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个多月前发了一篇帖子: WireGuard 跨国组网失败后,一个新工具的诞生,这段时间社区用户提供了很多有价值的反馈.因此发一个帖子汇报一下由社区用户驱动而实现的特性,并感谢各位社区用户.

    曾经我认为用户使用的是相对较新的 Linux 发行版,并能够使用系统依赖构建出二进制,并使用发行版提供的方式打包,至少是能运行 Docker. 然而,还有用户在用着 centos7,甚至是一些我没有听说过的路由器系统.对于这些系统几乎没法用这个软件,而把这个软件跑在路由器上貌似也是一种常见的需求?

    一位用户通过很复杂的脚本构建所有底层依赖,并最终制作出静态链接的可执行程序后,我觉得有必要支持这个特性.因此参考这个用户的脚本,调整 CMake 构建流程,允许下载依赖并 构建出单文件的可执行程序 ,这对 Go 和 Rust 来说不难,但对 C++ 来说还是稍微有一点点复杂.

    在前面的基础上,又 通过交叉编译构建不同架构的可执行程序 ,最终制作出Github Workflow.

    这是个自用软件,同时分享出来给 有相同需求的用户.后续目标是让软件保持足够的稳定,几乎不会为用户实现新需求,除非能直接提 PR.说到稳定,前段时间心血来潮测试过第一个发布的版本,还能和最新版本正常组网.

    最后再放一下项目链接: https://github.com/lanthora/candy

    第 1 条附言  ·  194 天前
    5.8.8 版本移除了所有 GPL 相关的依赖.提供了一些预编译的二进制.如果需要的架构不在里面可以放心的提 PR.

    https://github.com/lanthora/candy/releases/tag/v5.8.8
    第 2 条附言  ·  194 天前
    尝试了新的编译工具链.期待来自 riscv64 和 loongarch64 用户的测试.
    https://github.com/lanthora/candy/actions/runs/9462491956
    9 条回复    2024-06-14 16:33:04 +08:00
    rebecca554owen
        1
    rebecca554owen  
       195 天前
    项目不错,支持了。
    fortitudeZDY
        2
    fortitudeZDY  
       194 天前
    c++编写,太厉害了,赞一个
    lanthora
        3
    lanthora  
    OP
       194 天前
    @rebecca554owen 感谢
    @fortitudeZDY 当初选 c++ 是因为 wintun 库是 c 的 api,并且用 c++ 写不用担心编译不出一些用户量少的架构,毕竟不管什么架构至少会出能用的 c 编译器.
    fortitudeZDY
        4
    fortitudeZDY  
       194 天前
    @lanthora 我看 tailscale 也是用的 wintun 是,c++一直没胆量去学习,不过 go 在网络处理上可能还是没有 c++高效,加油楼主
    lanthora
        5
    lanthora  
    OP
       193 天前
    @fortitudeZDY 在 windows 下几乎都是用的 wintun, 其他语言是给 c 套壳.一般家庭网络性能瓶颈是带宽的上传,不是开发语言.这波升级搞定后我要继续躺了.不做新功能,希望没 BUG.
    allenby
        6
    allenby  
       193 天前 via Android
    支持嘎
    cnbatch
        7
    cnbatch  
       193 天前
    我自己的网络工具也用 C++来写,依赖项全部由系统内置的包管理器提供,个别发行版不提供静态版本那就自己编译一个写特例。

    最终效果就是,只需要复制粘贴命令就能顺利编译(个别发行版除外)。

    不过我没法用 GitHub Workflow ,这货不支持 BSD 二进制,而我自己是 BSD 用户。
    所以我都是在自己的虚拟机做编译的,在开发用的机器运行脚本,自动登录到各台虚拟机运行编译流程。

    唯一的遗憾是,我的项目创始之时,各大编译器对 C++20 特性的支持差异太大,只能使用当时的“最大公约数”——C++17 ,没能用上新版本内置的协程。现在想改都没法改。
    cnbatch
        8
    cnbatch  
       193 天前
    @fortitudeZDY 没什么好怕的,崩了就改,一边写一边学
    tediorelee
        9
    tediorelee  
       191 天前
    厉害了,star 一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2556 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 10:19 · PVG 18:19 · LAX 02:19 · JFK 05:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.