V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yinqiwen
V2EX  ›  分享创造

C++20(coroutine) 写了个 proxy 工具

  •  
  •   yinqiwen ·
    yinqiwen · 2022-07-07 14:51:21 +08:00 · 1890 次点击
    这是一个创建于 650 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/yinqiwen/snova-asio

    特色在于:

    • 低资源占用
    • 正反向 proxy
    6 条回复    2022-07-11 11:45:14 +08:00
    archxm
        1
    archxm  
       2022-07-09 10:45:07 +08:00
    请问怎么不影响旧程序,而升级 gcc ,我们目前用的 4.4.7 版本。
    yinqiwen
        2
    yinqiwen  
    OP
       2022-07-09 16:43:17 +08:00
    linux 上用的是编译时指定下载 musl 工具链( https://more.musl.cc/11/x86_64-linux-musl/),可以随时升级, 而不是系统自带的 gcc ;
    nmap
        3
    nmap  
       2022-07-11 10:06:42 +08:00
    这个 coroutine 需要各种第三方网络库支持吗?
    yinqiwen
        4
    yinqiwen  
    OP
       2022-07-11 10:47:24 +08:00
    @nmap coroutine 和网络库没啥直接关系,只是一种运行机制;理论上你可以把任何异步调用封装成 coroutine 调用, 这方面可以参考 folly 的实现: https://github.com/facebook/folly/tree/main/folly/experimental/coro
    nmap
        5
    nmap  
       2022-07-11 10:59:04 +08:00
    @yinqiwen #4 比如说,libcurl 只支持阻塞调用实现 http client get ,能通过 coroutine 来异步调用它吗?
    yinqiwen
        6
    yinqiwen  
    OP
       2022-07-11 11:45:14 +08:00
    @nmap 阻塞同步调用不行, 只能是非阻塞异步的;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5478 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 06:49 · PVG 14:49 · LAX 23:49 · JFK 02:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.