写点什么

使用 Rust 重新实现 SQLite 以实现异步 I/O

  • 2025-01-26
    北京
  • 本文字数:1239 字

    阅读完需:约 4 分钟

使用 Rust 重新实现 SQLite 以实现异步 I/O

使用 Rust 重新实现 SQLite 以实现异步 I/O


本文最初发表于 DevClass 网站,由 InfoQ 中文站翻译分享。


Turso 是一家专注于数据库解决方案的初创公司,目前正在使用 Rust 重新实现 SQLite 数据库引擎,以实现主要的新特性,比如异步 I/O。


Turso 由 Glauber Costa 和 Pekka Enberg 在 2021 年创立。2022 年,这家当时名为 ChiselStrike 的初创公司 fork 了 SQLite,并创建了 libSQL。其基本思路是 SQLite 需要现代化,而且虽然该项目是开源的,但它不向希望对那些改进该项目的贡献者开放。


创始人现在 宣布,仅仅 fork SQLite 不足以实现他们想要的一些变更,包括异步 I/O。Enberg 开启了一个使用 Rust 重新实现 SQLite 的私人项目,这个项目已经被采纳为 Turso 的官方项目。



Limbo,一个使用 Rust 重新实现 SQLite 的项目


他的目标是 Limbo(这显然是一个代号,可能会更改)将与 SQLite 完全兼容,但具有“完全的内存安全性和新的现代化架构”。该项目目前正在进行中,并在 MIT 许可下在 GitHub 上开源。


SQLite 的可靠性部分归功于其广泛的测试套件。Costa 和 Enberg 表示,他们可以通过一种名为确定性模拟测试(Deterministic Simulation Testing,DST)的技术实现相同或更好的可靠性,它借助了 antithesis 的帮助,这是一款专门用于在模拟硬件和软件故障环境中进行测试的软件。Limbo 也有自己内置的 DST 框架。


在 Linux 上,Limbo 使用了内核系统调用 io_uring,它由 Meta 的一位工程师开发,用于高性能异步 I/O。新引擎扩展了 sqlite3_step,以便在数据尚未准备好使用时立即返回。Costa 和 Enberg 发现,虽然 SQLite 查询通常很快,但对于大型数据集来说,它们则可能比较慢。


Limbo 的另一个特性是编译为 Web assembly(WASM), Turso 的联合创始人说这是“SQLite 的补充”。


Limbo 的性能已经非常好了,在某些情况下比 SQLite 更快,不过,在有些情况下可能比 SQLite 慢。Costa 在 Hacker News 的评论中写道:“我们的目标不是声称它更快……而是强调我们在项目的早期就已经达到了良好的性能水平。”


我们能够在 Mac 上编译并运行 Limbo,不过需要将 Rust 编译器更新到最新版本以解决相关的错误。


在 Rust 中重新实现 SQLite 是一个有价值的项目吗?有的开发人员评论说,“考虑到代码质量和严格的测试,SQLite 可能是最不应该重写的项目”。也就是说,重写的目的不是为了避免 C 或 C 代码中常见的漏洞,而是为了添加特性(考虑到 SQLite 项目本身是相对封闭的),并利用 Rust 语言实现在 C 语言中难以实现的功能。


原文链接:


https://devclass.com/2024/12/12/sqlite-re-implemented-in-rust-to-achieve-asynchronous-i-o-and-other-changes/


声明:本文为 InfoQ 翻译,未经许可禁止转载。


今日好文推荐


2024 年度技术热词来袭,AI 如何在可控生成和降本增效中寻找平衡


OpenAI 史上最长宕机:自研 K8s 成“拦路虎”,导致数小时无法修复


700 多亿打水漂后,这家巨头突然舍弃了无人驾驶出租车业务!新老员工炸锅:刚还在加班、“一群傻瓜”


掀翻牌桌:定义面向未来的开发新范式


2025-01-26 11:4413421

评论

发布
暂无评论

KeyShot 10 Pro for mac(3D渲染动画制作软件)

Mac相关知识分享

区块链RWA系统开发的技术框架

北京木奇移动技术有限公司

区块链技术 软件外包公司 RWA开发

Capture One Studo for mac( RAW 转换器)中文直装版

Mac相关知识分享

DaisyDisk for Mac(mac磁盘清理软件)

Mac相关知识分享

洋井石化集团:以业务为中心,构建数字化洋井

用友智能财务

财务

QT 软件外包开发流程

北京木奇移动技术有限公司

软件外包公司 QT开发公司 QT开发团队

Drive Scope for mac(硬盘健康检查预警软件)

Mac相关知识分享

提供方耗时正常,调用方毛刺频频

京东零售技术

后端

六盘水正规等保测评机构有吗?在哪里?

行云管家

等保 等保测评 六盘水

autocad2022 for mac中文破解版及cad2022安装教程

理理

DoYourClone for Mac(磁盘克隆工具)

Mac相关知识分享

集成自然语言理解服务,让应用 “听得懂人话”

HarmonyOS SDK

harmoyos

AI智能决策赋能服装零售 实现精准商品计划与供需平衡

第七在线

Adobe Creative Cloud(Adobe桌面应用程序ACC)

理理

在华为开发者空间,基于FunctionGraph快速部署在线画图工具

华为云开发者联盟

软件开发 云主机 API 接口

苹果mac壁纸软件推荐:Dynamic Wallpaper for Mac中文最新版

理理

京东商品详情API接口的开发、应用与收益探索

科普小能手

数据 电商 京东 API 接口 API 测试

数字营销咨询,照亮企业营销数字化每一步

赛博威科技

营销数字化 数字营销 赛博威

XMind思维导图安装包永久使用-mac/win

理理

桌面宠物软件哪款好?桌面宠物软件推荐Desktop Goose抖音桌面宠物鹅

理理

AI工具百宝箱|CodeArena:开源编程语言模型代码对决平台,等你来战!

可信AI进展

真实案例解析缓存大热key的致命陷阱

京东零售技术

后端

云端新纪元:Cloud Studio引领开发与学习革命

代码忍者

Sketch for mac(专业矢量绘图设计软件)v101.6中文版

理理

Ableton Live 12 Suite for mac(音乐制作工具)

Mac相关知识分享

电子商务怎么定义?电子商务公司哪些场景需要用到堡垒机?

行云管家

网络安全 IT 运维 电子商务

Permute 3 for mac(全能媒体格式转换器)

Mac相关知识分享

WebGL 项目外包开发流程

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

WebAssembly场景及未来

江湖修行

前端 Web Web 3.0 WebAssenbly

Acrobat pro dc 2019 for mac(PDF专业制作软件)中文版

Mac相关知识分享

Turbo Boost Switcher Pro for mac(CPU 温度监测及性能调节工具)

Mac相关知识分享

使用 Rust 重新实现 SQLite 以实现异步 I/O_编程语言_Tim Anderson_InfoQ精选文章