• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lesismal
V2EX  ›  程序员

用 Claude 搞了个新的 Event Driven、高性能、低内存的 Golang 网络库: fib 。

  •  
  •   lesismal ·
    lesismal · 4 days ago · 987 views

    前置:这个主要内容是手动编辑的。

    仓库:fib

    nbio 是以前手搓的,没有精力去手搓支持 HTTP 2/3,它已经不值一提、被我放弃。

    fib 的几乎所有代码都由 Claude 生成。支持 TLS、HTTP 1/2/3 和 WebSocket,性能基本超过了几乎所有之前的 Go 库。

    在 GitHub Actions CI 的 benchmark 中,fib 在一些场景下比标准库高出几倍的吞吐量并且内存占用更低,性能也基本比 fasthttp、fiber、herz 那些以性能著称的库更好。 与 C/C++/Rust 的一些库相比,fib 的性能也可以做到更加接近甚至超越,在某些情况下比如 Pipeline/Multiplex,得益于良好的背压机制优化,fib 甚至大幅领先一些 C/C++/Rust 库、成倍领先 Golang 其他库。

    当然,不同的硬件规格、测试参数和框架配置可能会导致不同的结果。欢迎有兴趣的大佬们在自己的机器上运行这些基准测试。

    更多详情:

    https://github.com/lesismal/fib/blob/main/docs/blog/introducing-fib.zh-CN.md

    https://github.com/lesismal/fib/blob/main/docs/blog/introducing-fib.md

    各协议的完整基准测试代码:

    https://github.com/lesismal/go-tls-benchmark

    https://github.com/lesismal/go-http1-benchmark

    https://github.com/lesismal/go-http2-benchmark

    https://github.com/lesismal/go-http3-benchmark

    https://github.com/lesismal/go-websocket-benchmark

    onetown
        1
    onetown  
       4 days ago   ❤️ 1
    支持一下, 之前的 nbio 也用过. 不过现在不再手搓和找依赖了, 很多都是用大模型自己解决一些网络和性能瓶颈问题.
    lesismal
        2
    lesismal  
    OP
       1 day ago
    @onetown 感谢支持!

    我也有一年多没手搓代码了,去年还要经常返工,今年初开始就很少需要返工了,准确率很给力。

    做这个新库刚开始阶段,我还用自己的经验瞎指挥教 Claude 怎么做。
    优化的过程中,它分析代码、trace 、pprof 和各种测试用例测试方法全方位量化,比我的经验验证龟速前进强得不是一点半点、而是几个数量级。
    所以我现在都要经常提醒自己:不要指挥 Claude 怎么做技术去限制它的能力,只要告诉它想要达到什么效果,比如“benchmark 某项不如 xx 框架,优化:提高性能、降低内存占用”,剩下的让它自己自由发挥。

    我将无我,不负 AI 😂
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   988 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 17:39 · PVG 01:39 · LAX 10:39 · JFK 13:39
    ♥ Do have faith in what you're doing.