V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
cxhello
V2EX  ›  Go 编程语言

Go 框架使用调研

  •  2
     
  •   cxhello ·
    cxhello · 22 天前 · 6677 次点击

    想了解下 V 友们都在使用什么框架,Gin 还是 iris

    第 1 条附言  ·  22 天前
    感谢 V 友们的积极回复,目前看下来貌似 gin 、echo 、kratos 这三个框架用的比较多。我是搞 Java 的,之前同事交接过一个 iris 的项目,看了一圈好像没人用这个框架。
    93 条回复    2025-03-29 20:42:31 +08:00
    dp
        1
    dp  
       22 天前   ❤️ 1
    在用 gin 或者 kratos
    Ayanokouji
        2
    Ayanokouji  
       22 天前   ❤️ 7
    echo
    laikick
        3
    laikick  
       22 天前
    gin
    laikick
        4
    laikick  
       22 天前
    gin. 相关文档多一点. 但是他那个上下文不好用
    csfreshman
        5
    csfreshman  
       22 天前
    kratos
    sn0wdr1am
        6
    sn0wdr1am  
       22 天前
    gin+gorm
    qingbaihe
        7
    qingbaihe  
       22 天前
    gin
    layxy
        8
    layxy  
       22 天前
    gofiber+jet,之前尝试了 ent,但是局限性太大,简单查询还行,复杂的就麻烦,而且强制创建外键关联 ID 就很不适合国内一些公司的开发规范
    guangzhouwuyanzu
        9
    guangzhouwuyanzu  
       22 天前
    字节的:hertz 、kitex
    liaoxx
        10
    liaoxx  
       22 天前
    echo +gorm
    akiyamamio
        11
    akiyamamio  
       22 天前
    goframe
    lujiaxing
        12
    lujiaxing  
       22 天前
    gin.
    用来些网关写 k8s 插件不要太爽
    jedeft
        13
    jedeft  
       22 天前
    gin + gorm
    JaguarJack
        14
    JaguarJack  
       22 天前
    goframe
    liaohongxing
        15
    liaohongxing  
       22 天前
    fiber+gorm
    vincentWdp
        16
    vincentWdp  
       22 天前
    我在小团队, gin 足以(也不会别的)
    bbao
        17
    bbao  
       22 天前
    @guangzhouwuyanzu 字节的 hertz 没有字节的场景,用不到 netpoll 等特性就相当于用 gin 了,hertz 的源码实现参考了 gin,echo 等框架的特点,在阅读源码的时候基本路由方面绝大多数参考了 gin ,少部分代码风格参考了 echo 。
    zone10
        18
    zone10  
       22 天前
    go-zero + gorm
    wnanbei
        19
    wnanbei  
       22 天前
    大部分是 gin ,但是居然 fiber 挺少的
    Immortal
        20
    Immortal  
       22 天前
    以前是 gin/echo 玩赛博乐高
    现在 goframe 养老
    EmptyDX
        21
    EmptyDX  
       22 天前
    fiber + ent
    nobject
        22
    nobject  
       22 天前
    gin
    ninjashixuan
        23
    ninjashixuan  
       22 天前
    goframe ,有自动 swagger 挺香的,就是 middleware 不够方便。
    Jasperzz
        24
    Jasperzz  
       22 天前
    go-zero
    kidlj
        25
    kidlj  
       22 天前
    echo + ent = 💯
    fffq
        26
    fffq  
       22 天前
    公司用啥我用啥
    zoharSoul
        27
    zoharSoul  
       22 天前
    kratos
    bv
        28
    bv  
       22 天前
    https://github.com/xgfone/ship 零依赖的 HTTP 框架,适合我这种代码洁癖
    iyaozhen
        29
    iyaozhen  
       22 天前
    字节的 hertz
    gxm44
        30
    gxm44  
       22 天前
    echo
    bronyakaka
        31
    bronyakaka  
       22 天前   ❤️ 2
    gin 太久不维护了,用 echo
    xiaoao4568
        32
    xiaoao4568  
       22 天前
    gin go-zero
    XCFOX
        33
    XCFOX  
       22 天前
    借楼提问:go 语言生成 OpenAPI | Swagger 文档的最佳实践是怎样的?或者大家平常跟前端沟通都是手写文档的?
    encro
        34
    encro  
       22 天前
    最近打算写一个微服务集合的项目,用 kratos ,fiber ,hertz 纠结好久。orm 用 gorm,ent,bun 也要纠结好久,现在还二没决定。
    Ayanokouji
        35
    Ayanokouji  
       22 天前   ❤️ 3
    @XCFOX 以前手写,现在 ai 写。文档这块一直吐槽,试了一下 https://github.com/danielgtaylor/huma ,还在犹豫。
    lzgshsj
        36
    lzgshsj  
       22 天前
    goframe 一把梭
    Grocker
        37
    Grocker  
       22 天前
    gin + gorm
    Felldeadbird
        38
    Felldeadbird  
       22 天前
    gin 。
    LitterGopher
        39
    LitterGopher  
       22 天前
    公司用 gin, 自己用 fiber.
    LitterGopher
        40
    LitterGopher  
       22 天前
    @bronyakaka #31 我看维护挺积极的, 为何说没有维护了呢? 最后一笔提交就在 4 天前.
    vino0908
        41
    vino0908  
       22 天前
    fiber 、kratos
    bronyakaka
        42
    bronyakaka  
       22 天前
    @LitterGopher #40 你看上个版本是啥时候发布的,没人发版,难道你是自己 fork 下来用吗
    klakekent
        43
    klakekent  
       22 天前
    不是说 gin 性能拉胯吗 虽然我也在用 没人用那个 fasthttp ?
    bronyakaka
        44
    bronyakaka  
       22 天前
    @klakekent 不兼容 http2
    wzw
        45
    wzw  
       22 天前
    gin + gorm
    sky3hao9
        46
    sky3hao9  
       22 天前
    用过 kratos 后, 其他都是浮云
    herozzm
        47
    herozzm  
       22 天前
    fiber + xorm
    ryalu
        48
    ryalu  
       22 天前
    @sky3hao9 #44 如果能把框架内集成的 log 那一套直接替换成 slog 就更爽了
    wunonglin
        49
    wunonglin  
       22 天前
    echo 、kratos
    Kaiv2
        50
    Kaiv2  
       22 天前
    echo 一个简单的应用
    nobject
        51
    nobject  
       22 天前
    @bronyakaka #42 想用他非正式发的版本也可以直接用 commit id 啊,也不一定要 fork 下来吧
    bronyakaka
        52
    bronyakaka  
       22 天前
    @nobject #51 你这么用当然行,不过不是正式版本,说明没怎么测试过,为啥非要强行担这个风险呢? echo 官方维护测试积极地多
    bronyakaka
        53
    bronyakaka  
       22 天前
    @nobject #51 而且 gin 本来就没啥功能,就图个轻量,现在还得考虑这些事情,那干嘛不换一个。替代品太多
    nodesolar
        54
    nodesolar  
       22 天前
    gin
    LitterGopher
        55
    LitterGopher  
       22 天前
    @bronyakaka #42 发版本这种事情不需要那么积极吧? 不过我看了一下, 上次发版确实有点久了.

    但是考虑到一个 gin 已经相对完善, 已经不需要添加太多的新特性(至少不需要着急), 所以这么久没有发版个人感觉还是能够接受的, 当然, 如果能够更积极一些就更好了.
    Nanmi
        56
    Nanmi  
       22 天前
    @XCFOX 之前用 kratos ,通过 proto 定义通信的 message ,用上 google 的 swagger 注入插件,在 cicd 层做处理,基本一 push 代码流水线跑完之后就可以拿到 swagger 文档了。
    Altale
        57
    Altale  
       22 天前
    gin 最熟悉,go-zero 用过里面的难用
    Altale
        58
    Altale  
       22 天前
    @bronyakaka 为什么一个 http 框架需要频繁发版呢?你用经常发版的框架说明 bug 多,难道你业务没问题但是 http 框架修复问题了你节假日还要跟着更新一下发新版本?
    gitrebase
        59
    gitrebase  
       22 天前
    自己的项目,直接用标准库搓:路由在 Go 1.22 后用 mux 就很方便了;中间件一般都自己搓(因为三方库提供的一些 middleware 用着不爽、还要适配,不如自己手搓,或者就是 log 、recover 这种简单的,直接手搓毫无负担);具体逻辑上,我写 handler 就是很薄很薄的一层,只校验类似 string 参数是否为空、不进行业务性校验,所以也不需要各种各样的功能,标准库够用了;性能上,肯定不如那些三方库,不过我自己的项目遇不到性能瓶颈 hhh ,用标准库而不是三方库,能少很多很多 dependencies ,项目就很干净
    Altale
        60
    Altale  
       22 天前
    @klakekent 因为许多人没有这样的业务场景需求

    https://github.com/valyala/fasthttp

    fasthttp might not be for you!

    fasthttp was designed for some high performance edge cases. Unless your server/client needs to handle thousands of small to medium requests per second and needs a consistent low millisecond response time fasthttp might not be for you. For most cases net/http is much better as it's easier to use and can handle more cases. For most cases you won't even notice the performance difference.
    bronyakaka
        61
    bronyakaka  
       22 天前
    @Altale #58 你不看 issue 吗??提了多少 bug 了,还有很多子依赖版本有漏洞,都需要升级
    bronyakaka
        63
    bronyakaka  
       22 天前   ❤️ 3
    @Altale #58 经常发版的框架说明 bug 多 这句话太扯淡了。
    R18
        64
    R18  
       22 天前
    gofibe + entgo
    crackidz
        65
    crackidz  
       22 天前
    gin
    monkeydream
        66
    monkeydream  
       22 天前
    大部分用的 gin + gorm
    有的用了 beego
    Tiscs
        67
    Tiscs  
       22 天前
    补充个小众轻量级的,BunRouter
    https://github.com/uptrace/bunrouter
    顺带推荐 Bun ORM ,我参与了一点点维护,喜欢这种轻量级的框架
    https://github.com/uptrace/bun
    webcape233
        68
    webcape233  
       22 天前 via iPhone
    echo !!!简单好用
    devcai
        69
    devcai  
       22 天前
    个人客户端开发者,零基础开发了个会员 api 服务,用的 gin + grom
    meiguozhiguang
        70
    meiguozhiguang  
       22 天前
    go-zero
    tangqiu0205
        71
    tangqiu0205  
       22 天前
    kratos
    NX2023
        72
    NX2023  
       22 天前
    @XCFOX 有一些框架自带这个功能,比如说 goframe
    如果用 gin 或者其他框架,也有很多工具能够嵌入然后自动生成
    https://github.com/go-fuego/fuego
    FightPig
        73
    FightPig  
       22 天前
    用的自己封装的
    wowbaby
        74
    wowbaby  
       22 天前
    iris 我觉得很好,我用 iris 完全是自带 MVC 模式为了 seo ,功能比较全,自带 examples 看下就可以干活了。
    fxjson
        75
    fxjson  
       22 天前
    https://github.com/fanqingxuan/go-gin, 这是我用 gin 封装的一个轻量级开箱即用框架,可以参考下
    techart
        76
    techart  
       22 天前
    gin + grpc
    ericcen
        77
    ericcen  
       22 天前 via iPhone
    dubbo-go
    ikaros
        78
    ikaros  
       22 天前
    公司用的 gin, 自己的项目用的 echo
    kpsanmao
        79
    kpsanmao  
       22 天前
    有没有类似 Django 或者 Laravel+Filament 这种管理后台功能强大、开箱可用。只需要专心撸 api 的 go 框架啊?
    dzdh
        80
    dzdh  
       22 天前
    goravel
    AdminRoot123
        81
    AdminRoot123  
       22 天前
    AppxLite
        82
    AppxLite  
       22 天前
    gin echo fiber 都用过,感觉还是 fiber 好
    jakes
        83
    jakes  
       21 天前
    echo + entgo
    hugozach
        84
    hugozach  
       21 天前
    fiber 底层基于 fasthttp 占用内存最小 速度最优 但是 fasthttp 不是官方的请求库
    gin 生态最优 开发成本相对低 很多错误一搜一大片
    echo 介于上述两者之间 咱就是说比较尴尬啦

    我就用过这些 求稳就选 gin 自己解决问题强动手能力强无脑建议 fasthttp
    ElmerZhang
        85
    ElmerZhang  
       21 天前
    echo
    qloog
        86
    qloog  
       21 天前
    eagle(gin) + gorm
    nanpu
        87
    nanpu  
       21 天前
    @XCFOX 以前手写注释,现在先用 ai 生成自己再改改
    orluna
        88
    orluna  
       21 天前
    fiber
    lanceadd
        89
    lanceadd  
       21 天前
    goframe
    https://goframe.org/
    这玩意真的可以做到一把梭哈,易用性,性能和功能很 OK
    cckate
        90
    cckate  
       21 天前
    gin ,虽然有些小缺点,但是功能基本够用了,主要是社区活跃度高
    morebuff
        91
    morebuff  
       20 天前
    一般项目用 gin ,高要求可以用字节的 hertz
    wzw
        92
    wzw  
       19 天前
    @lanceadd v2 的 web 改的有点不太舒服了, 其他模块很好
    hamwong
        93
    hamwong  
       17 天前
    gin
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:20 · PVG 10:20 · LAX 19:20 · JFK 22:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.