0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Rust的嵌入式符合ACID的键值数据库

jf_wN0SrCdH 来源:Rust语言中文社区 2023-12-28 11:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

surrealkv -- 基于 Rust 的 low level、版本化、嵌入式、符合 ACID 的键值数据库

surrealkv 是基于 Rust 中的版本化、low level、嵌入式键值数据库。它持久保存到磁盘,符合 ACID,并支持多个读取器和写入器。

特性

内存数据库

可嵌入

ACID 语义,具有丰富的事务支持和回滚

内置项目版本控制

多版本并发控制

多个并发读取器和写入器

持久的仅附加文件格式以实现持久性(支持 WAL)

rspack -- 基于 Rust 的高性能模块打包工具

Rspack(读音为 /'ɑrespæk/,)是一个基于 Rust 的高性能构建引擎, 具备与 Webpack 生态系统的互操作性,可以被 Webpack 项目低成本集成,并提供更好的构建性能。

初衷

作者写道:创建 Rspack 的原因是要解决在 ByteDance 维护构建工具时遇到的各种性能问题。由于 ByteDance 内部存在许多巨石应用,它们都具有复杂的构建配置,生产环境构建需要耗费十几分钟,甚至超过半小时;开发环境的耗时也超过十几分钟。我们在 Webpack 上尝试了多种方法来优化这些巨石应用,但是效果甚微。我们意识到在 Webpack 上的优化已经难以为继,必须要从底层改造,才能适应我们的需求。同时在聆听解决业务各种复杂的构建需求中,我们意识到开发人员对构建工具有以下要求:

快速的 Dev 启动性能。 npm run dev 是开发者每天需要运行很多次的命令,但大型项目每次都需要等待 10 分钟,这对于工程师来说非常痛苦,因此优化开发模式下启动的时间至关重要。

高效的 Build 性能。 npm run build 经常在 CI/CD 环境中运行,它决定了应用生产交付的效率。有些应用在生产环境中需要 20 到 30 分钟的构建时间,如果能缩短这段时间,对开发流程也将非常有帮助。

灵活的配置。 用户工程的配置非常灵活,不够统一。在之前的尝试中,将 Webpack 配置迁移到其他构建工具时,我们遇到了许多问题,因为其他构建工具的配置不如 Webpack 灵活。

生产环境的优化能力。 在启用 Rspack 之前,我们尝试了社区内的各种方案,但它们都面临着一定程度的生产环境负优化,例如拆分包不够精细等。因此,优化生产环境的产物是我们不可放弃的功能。

在确定了这四个需求后,我们调查了社区中的所有技术方案,它们通常都能很好的满足其中个别需求,但没有一个方案能同时满足所有条件。因此,我们决定自研 Rspack。

Rspack 目前的状态

到 2023 年 3 月为止 Rspack 已经开发了 11 个月,虽然 Rspack 仍处于比较早期的状态,且缺失了一些 webpack 的功能,但根据二八原则,目前的功能已经能够满足大多数项目的需求。同时,我们已经在内部的多个业务上完成了落地,取得了 5~10 倍编译性能的提升。目前的性能仍然存在较大提升空间,我们会持续对 Rspack 进行更深入的性能优化。Rspack 已经完成了对 webpack 主要配置的兼容,并且适配了 webpack 的 loader 架构。目前,你已经可以在 Rspack 中无缝使用你熟悉的各种 loader,如 babel-loader、less-loader、sass-loader、vue-loader 等等。

目前 Rspack 对缓存支持还比较简单,仅支持了内存级别的缓存,未来我们会建设更强的缓存能力,包括可迁移的持久化缓存,这将带来更大的想象空间,如在 monorepo 里不同的机器上都可以复用 Rspack 的云端缓存,提升大型项目的缓存命中率。

特性

启动速度极快: 基于 Rust 实现,构建速度极快,带给你极致的开发体验。

闪电般的 HMR: 内置增量编译机制,HMR 速度极快,完全胜任大型项目的开发。

兼容 webpack 生态: 针对 webpack 的架构和生态进行兼容,无需从头搭建生态。

内置常见构建能力: 对 TypeScript、JSX、CSS、CSS Modules、Sass 等提供开箱即用的支持。

默认生产优化: 默认内置多种优化策略,如 Tree Shaking、代码压缩等等。

框架无关: 不和任何前端框架绑定,保证足够的灵活性。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5212

    文章

    20792

    浏览量

    339016
  • 读取器
    +关注

    关注

    0

    文章

    54

    浏览量

    5601
  • Rust
    +关注

    关注

    1

    文章

    243

    浏览量

    7690

原文标题:【Rust日报】2023-12-20 surrealkv -- 基于 Rust 的 嵌入式、符合 ACID 的键值数据库

文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    直播预告 | 睿擎派实战:zlib 压缩移植与嵌入式应用(开源软件包移植专题第2期)

    与应用,并结合SQLite数据库实测压缩率——36864字节→8909字节,节省75.8%。这场直播能帮你解决什么问题?嵌入式存储空间紧张→压缩SQLite文件,节省
    的头像 发表于 05-25 18:15 61次阅读
    直播预告 | 睿擎派实战:zlib 压缩<b class='flag-5'>库</b>移植与<b class='flag-5'>嵌入式</b>应用(开源软件包移植专题第2期)

    实战 | 睿擎平台 zlib: 嵌入式数据压缩方案,从移植到应用一文打通

    嵌入式开发中,存储空间和网络带宽一直是稀缺资源:数据库文件太大存不下、传感器数据量大传不动、固件升级包占用过多Flash......传统方案要么忍着不上压缩,要么引入复杂的自研压缩逻辑,踩坑多
    的头像 发表于 05-20 18:29 484次阅读
    实战 | 睿擎平台 zlib: <b class='flag-5'>嵌入式</b><b class='flag-5'>数据</b>压缩方案,从移植到应用一文打通

    【米尔TI AM62L开发板试用】+数据库操作及功能测试

    ,再向中添加一条同名的记录,其操作见图4所示。 图4添加记录 (5)查询记录 由于此时中已有2条记录,此时通过指定条件可找到符合条件的记录,见图5所示。 图5 条件查询 (6)退出数据库
    发表于 05-11 11:31

    实战 | 睿擎平台SQLite:嵌入式设备上的数据持久化方案,从移植到应用一文打通

    的完整SQLite方案——从源码移植到VFS适配,从DAO层封装到Shell调试,手把手带你搞定嵌入式数据库。为什么选SQLite?SQLite是全世界部署最广泛
    的头像 发表于 04-29 19:22 8094次阅读
    实战 | 睿擎平台SQLite:<b class='flag-5'>嵌入式</b>设备上的<b class='flag-5'>数据</b>持久化方案,从移植到应用一文打通

    FSKV:给嵌入式设备一个“不会失忆的大脑”

    FSKV是LuatOS系统专为嵌入式设备设计的键值对(Key-Value)存储,其作用是在Flash存储器中持久化存储键值数据,允许开发
    的头像 发表于 01-05 20:13 258次阅读
    FSKV:给<b class='flag-5'>嵌入式</b>设备一个“不会失忆的大脑”

    嵌入式与FPGA的区别

    \"嵌入式开发门槛低、就业广,适合转行;FPGA技术深、薪资高,但要求学历和数学功底。选哪个?看你的基础和职业目标。\" ⭕我们先来明白下两者区别在哪? ✅1、嵌入式:分两部分
    发表于 11-20 07:12

    2025年最佳的嵌入式编程语言有哪些呢?

    嵌入式系统是现代科技不可或缺的一部分。它们存在于家用电器、汽车、住宅、医院、商店等各个领域。它们与我们的社会紧密相连。选择合适的语言来构建嵌入式系统对于成功至关重要。那么,2025年最佳的嵌入式编程
    的头像 发表于 11-14 10:27 1925次阅读
    2025年最佳的<b class='flag-5'>嵌入式</b>编程语言有哪些呢?

    RusT-Thread:基于Rust面向资源受限嵌入式设备的操作系统的实践 | 技术集结

    摘要随着物联网和嵌入式系统的发展,实时操作系统(RTOS)的安全性和性能需求日益提高。传统基于C语言的RTOS在内存安全和并发控制方面存在局限,容易导致缓冲区溢出、数据竞争等问题。本项目以
    的头像 发表于 11-07 17:37 7169次阅读
    <b class='flag-5'>RusT</b>-Thread:基于<b class='flag-5'>Rust</b>面向资源受限<b class='flag-5'>嵌入式</b>设备的操作系统的实践 | 技术集结

    国产数据库的AI战事

    国产数据库硝烟再起,Vastbase V100构筑企业智能基座
    的头像 发表于 10-24 20:45 4578次阅读
    国产<b class='flag-5'>数据库</b>的AI战事

    数据库性能优化指南

    作为一名在大厂摸爬滚打多年的运维老兵,我见过太多因为数据库性能问题导致的生产事故。今天分享一套完整的数据库优化方法论,从SQL层面到硬件配置,帮你彻底解决性能瓶颈!
    的头像 发表于 08-18 11:21 980次阅读

    数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库
    的头像 发表于 07-24 11:12 954次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—服务器异常断电导致Oracle<b class='flag-5'>数据库</b>故障的<b class='flag-5'>数据</b>恢复案例

    三款主流国产数据库的技术特点

    随着数字经济的快速发展和数据安全要求的提升,国产数据库正迎来前所未有的发展机遇。在信创浪潮推动下,达梦数据库、TiDB、华为高斯数据库等国产数据库
    的头像 发表于 07-14 11:08 1429次阅读

    数据库数据恢复—MongoDB数据库文件丢失的数据恢复案例

    MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍
    的头像 发表于 07-01 11:13 889次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—MongoDB<b class='flag-5'>数据库</b>文件丢失的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—SQL Server数据库被加密如何恢复数据

    SQL Server数据库故障: SQL Server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。
    的头像 发表于 06-25 13:54 935次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>被加密如何恢复<b class='flag-5'>数据</b>?

    oracle数据恢复—oracle数据库误执行错误truncate命令如何恢复数据

    oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据
    的头像 发表于 06-05 16:01 2043次阅读
    oracle<b class='flag-5'>数据</b>恢复—oracle<b class='flag-5'>数据库</b>误执行错误truncate命令如何恢复<b class='flag-5'>数据</b>?