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

我准备写一个强类型关系型数据库,是应该用 go 还是 rust?

  •  
  •   sskycn ·
    sskycn · 7h 52m ago · 2291 views

    详细说明在这里:

    https://github.com/sskycn/xdb

    go 语言我用了多年,很熟悉,rust 没用过,但在我的感觉里,这个项目应该用 rust.

    大家帮我分析分析,应该用什么好。

    为什么想写一个强类型数据库,是因为优化自己的 dsl ,优化到了一定程度后,感觉很接近数据库的实现了。

    dsl 现在是用 go 实现的。

    Supplement 1  ·  6h 36m ago

    我原来的dsl,需要生成sql来操作数据库,NetbaDB的目标大概就是省掉代码生成,直接支持强类型操作。

    // @Entity(table="users")
    type User struct {
    	// @PrimaryKey
    	Id uint64
    
    	// @Column("display_name")
    	DisplayName string
    
    	// @Omit
    	Password string
    
    	// @Ignore
    	SessionToken string
    }
    
    // @Entity(table="teams")
    type Team struct {
    	// @PrimaryKey
    	ID uint64
    }
    
    // @Entity(table="members")
    type Member struct {
    	// @Ref(Team.ID)
    	TeamID *uint64
    }
    
    34 replies    2026-08-12 18:19:39 +08:00
    fiveStarLaoliang
        1
    fiveStarLaoliang  
       7h 44m ago   ❤️ 1
    选 go ,AI 时代,最好选一门程序员友好型。写代码不用你写了,审代码还得你自己申,选一门对自己友好的语言,别折腾自己。
    bunai
        2
    bunai  
       7h 42m ago   ❤️ 1
    推荐你用 rust
    要是我就选择 go ,rust 说实话是真看不懂
    laizenan
        3
    laizenan  
       7h 37m ago   ❤️ 1
    talk is cheap ,让 AI 写 2 个 demo 对比 benchmark 一下呢?
    zsj1029
        4
    zsj1029  
       7h 35m ago   ❤️ 1
    数据库这种高并发低延迟的明显是 rust 更合适,含 gc 的都要排除
    liuliuliuliu
        5
    liuliuliuliu  
       7h 35m ago   ❤️ 5
    redbule
        6
    redbule  
       7h 33m ago   ❤️ 5
    C# 其实最好,项目初期有 gc 可以快速迭代,中后期又可以用各种特性优化性能。

    性能上限无限接近无 gc 的语言。
    kurthumburgmtz97
        7
    kurthumburgmtz97  
       7h 32m ago   ❤️ 1
    换个名吧,谷歌搜索 xdb 一大堆同名的项目,不利于推广
    yingha
        8
    yingha  
       7h 26m ago   ❤️ 1
    执行引擎用 go ,存储引擎 rust 。好奇存储引擎你打算怎么设计? LSM 吗?
    sskycn
        9
    sskycn  
    OP
       7h 20m ago
    @kurthumburgmtz97 好的,马上改名。
    sskycn
        10
    sskycn  
    OP
       7h 2m ago
    XDB 改为 NetbaDB 了,gpt 帮忙改的。
    noogler67
        11
    noogler67  
       7h 1m ago   ❤️ 1
    有性能要求的肯定是 rust ,不然后期优化 gc 延迟,得多麻烦。
    bunai
        12
    bunai  
       6h 48m ago
    有别人已经弄了

    https://github.com/t8y2/dbx
    antipro
        13
    antipro  
       6h 38m ago via Android
    @bunai 这是客户端
    icecreamxuegao
        14
    icecreamxuegao  
       6h 20m ago via Android
    @sskycn 网吧 DB ?
    fgwmlhdkkkw
        15
    fgwmlhdkkkw  
       5h 46m ago via Android
    go 没有装饰器,,,我建议用 rust 。
    vultr
        16
    vultr  
       5h 42m ago
    NetbaDB -> net bad db

    @sskycn 你把 gpt 搞得这么有口味了?
    artiga033
        17
    artiga033  
       5h 33m ago via Android   ❤️ 1
    没用过 rust 那我不建议一上来就写数据库这种,rust 性能高的前提是你有正确的心智模型,否则起反效果。go 则是随便来个阿猫阿狗写出来的性能都不至于烂到家。

    而且你做这种框架大概率要写宏,rust 的宏哪怕在你完全掌握语言本身之后,写起来都是挺困难的。
    cabing
        18
    cabing  
       5h 31m ago   ❤️ 1
    自己玩。就用 go 呗。
    loading
        19
    loading  
       5h 29m ago   ❤️ 1
    练手 Go ,生产 Rust

    Go 有 gc ,数据库怎么能让你周期性地卡一下。
    snxq1995
        20
    snxq1995  
       5h 26m ago
    不考虑其他语言吗,我最近在了解 zig ,感觉还不错。rust 入门失败 N 次了。go 不适合写数据库,原因同意上面的老哥,有 gc 的语言都不合适。
    ninjaJ
        21
    ninjaJ  
       4h 52m ago   ❤️ 1
    真正的关键点在于,rust 的语言特性把很多 bug 杀死在了编程之前,用 AI 写 rust 能让你的程序健壮很多。即使你不去看代码,编译器和自动化测试已经能找出很多 bug 了。
    cndns
        22
    cndns  
       4h 51m ago
    V2DB
    qxmqh
        23
    qxmqh  
       4h 46m ago
    不如起名 NBDB 。牛逼 DB
    YanSeven
        24
    YanSeven  
       4h 44m ago
    有请 TiDB 的大佬分享经验。
    ytFG
        25
    ytFG  
       3h 24m ago
    rustDB 或者 goDB
    sqlman
        26
    sqlman  
       2h 49m ago
    用 python (狗头)
    shylockhg
        27
    shylockhg  
       2h 48m ago
    好奇为啥准备做这玩意
    zengxs
        28
    zengxs  
       2h 42m ago
    除了 rust/go 还有个老登语言可以选择:c++
    sskycn
        29
    sskycn  
    OP
       1h 10m ago
    已经开干了,最终决定用 rust 。
    vultr
        30
    vultr  
       58 mins ago
    @sskycn 终于知道你为什么要自己买 pro 了,其实用公司的 pro 我也不会说你的。
    bootvue
        31
    bootvue  
       55 mins ago
    都是渣渣 用 c++吧
    ktyang
        32
    ktyang  
       52 mins ago
    爷青回 感觉好久没看到这种帖子了
    yfixx
        33
    yfixx  
       28 mins ago via Android
    有个 pgrust 了,你去看看
    WangTaiyang
        34
    WangTaiyang  
       26 mins ago
    可以看一下,已经可以用了
    https://github.com/guangdawang/wgcDB
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3305 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 10:46 · PVG 18:46 · LAX 03:46 · JFK 06:46
    ♥ Do have faith in what you're doing.