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

Go 框架使用调研

  •  1
     
  •   cxhello ·
    cxhello · 2 天前 · 5746 次点击

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

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

    但是考虑到一个 gin 已经相对完善, 已经不需要添加太多的新特性(至少不需要着急), 所以这么久没有发版个人感觉还是能够接受的, 当然, 如果能够更积极一些就更好了.
    Nanmi
        56
    Nanmi  
       2 天前
    @XCFOX 之前用 kratos ,通过 proto 定义通信的 message ,用上 google 的 swagger 注入插件,在 cicd 层做处理,基本一 push 代码流水线跑完之后就可以拿到 swagger 文档了。
    Altale
        57
    Altale  
       2 天前
    gin 最熟悉,go-zero 用过里面的难用
    Altale
        58
    Altale  
       2 天前
    @bronyakaka 为什么一个 http 框架需要频繁发版呢?你用经常发版的框架说明 bug 多,难道你业务没问题但是 http 框架修复问题了你节假日还要跟着更新一下发新版本?
    gitrebase
        59
    gitrebase  
       2 天前
    自己的项目,直接用标准库搓:路由在 Go 1.22 后用 mux 就很方便了;中间件一般都自己搓(因为三方库提供的一些 middleware 用着不爽、还要适配,不如自己手搓,或者就是 log 、recover 这种简单的,直接手搓毫无负担);具体逻辑上,我写 handler 就是很薄很薄的一层,只校验类似 string 参数是否为空、不进行业务性校验,所以也不需要各种各样的功能,标准库够用了;性能上,肯定不如那些三方库,不过我自己的项目遇不到性能瓶颈 hhh ,用标准库而不是三方库,能少很多很多 dependencies ,项目就很干净
    Altale
        60
    Altale  
       2 天前
    @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  
       2 天前
    @Altale #58 你不看 issue 吗??提了多少 bug 了,还有很多子依赖版本有漏洞,都需要升级
    bronyakaka
        63
    bronyakaka  
       2 天前   ❤️ 3
    @Altale #58 经常发版的框架说明 bug 多 这句话太扯淡了。
    R18
        64
    R18  
       2 天前
    gofibe + entgo
    crackidz
        65
    crackidz  
       2 天前
    gin
    monkeydream
        66
    monkeydream  
       2 天前
    大部分用的 gin + gorm
    有的用了 beego
    Tiscs
        67
    Tiscs  
       2 天前
    补充个小众轻量级的,BunRouter
    https://github.com/uptrace/bunrouter
    顺带推荐 Bun ORM ,我参与了一点点维护,喜欢这种轻量级的框架
    https://github.com/uptrace/bun
    webcape233
        68
    webcape233  
       2 天前 via iPhone
    echo !!!简单好用
    devcai
        69
    devcai  
       2 天前
    个人客户端开发者,零基础开发了个会员 api 服务,用的 gin + grom
    meiguozhiguang
        70
    meiguozhiguang  
       2 天前
    go-zero
    tangqiu0205
        71
    tangqiu0205  
       1 天前
    kratos
    NX2023
        72
    NX2023  
       1 天前
    @XCFOX 有一些框架自带这个功能,比如说 goframe
    如果用 gin 或者其他框架,也有很多工具能够嵌入然后自动生成
    https://github.com/go-fuego/fuego
    FightPig
        73
    FightPig  
       1 天前
    用的自己封装的
    wowbaby
        74
    wowbaby  
       1 天前
    iris 我觉得很好,我用 iris 完全是自带 MVC 模式为了 seo ,功能比较全,自带 examples 看下就可以干活了。
    fxjson
        75
    fxjson  
       1 天前
    https://github.com/fanqingxuan/go-gin, 这是我用 gin 封装的一个轻量级开箱即用框架,可以参考下
    techart
        76
    techart  
       1 天前
    gin + grpc
    ericcen
        77
    ericcen  
       1 天前 via iPhone
    dubbo-go
    ikaros
        78
    ikaros  
       1 天前
    公司用的 gin, 自己的项目用的 echo
    kpsanmao
        79
    kpsanmao  
       1 天前
    有没有类似 Django 或者 Laravel+Filament 这种管理后台功能强大、开箱可用。只需要专心撸 api 的 go 框架啊?
    dzdh
        80
    dzdh  
       1 天前
    goravel
    AdminRoot123
        81
    AdminRoot123  
       1 天前
    AppxLite
        82
    AppxLite  
       1 天前
    gin echo fiber 都用过,感觉还是 fiber 好
    jakes
        83
    jakes  
       1 天前
    echo + entgo
    hugozach
        84
    hugozach  
       1 天前
    fiber 底层基于 fasthttp 占用内存最小 速度最优 但是 fasthttp 不是官方的请求库
    gin 生态最优 开发成本相对低 很多错误一搜一大片
    echo 介于上述两者之间 咱就是说比较尴尬啦

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