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、代码压缩等等。

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






审核编辑:刘清

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

    关注

    5082

    文章

    19104

    浏览量

    304829
  • 读取器
    +关注

    关注

    0

    文章

    46

    浏览量

    5238
  • Rust
    +关注

    关注

    1

    文章

    228

    浏览量

    6601

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

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

收藏 人收藏

    评论

    相关推荐

    数据库数据恢复—Mysql数据库表记录丢失的数据恢复流程

    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分
    的头像 发表于 12-16 11:05 107次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—Mysql<b class='flag-5'>数据库</b>表记录丢失的<b class='flag-5'>数据</b>恢复流程

    数据库数据恢复—MYSQL数据库ibdata1文件损坏的数据恢复案例

    mysql数据库故障: mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库
    的头像 发表于 12-09 11:05 135次阅读

    HAL嵌入式系统中的应用

    HAL(Hardware Abstraction Layer Library,硬件抽象层)在嵌入式系统中扮演着至关重要的角色。以下是HAL
    的头像 发表于 12-02 11:32 464次阅读

    诚迈科技与粤港澳大湾区国家威廉希尔官方网站 创新中心签署嵌入式数据库合作备忘录

    11月26日,诚迈科技与粤港澳大湾区国家威廉希尔官方网站 创新中心工业软件产业发展中心(以下简称“国创工软”)签署嵌入式数据库合作备忘录。双方将围绕嵌入式数据库和鸿蒙生态紧密合作,共同构建面向工业企
    的头像 发表于 11-29 14:50 164次阅读
    诚迈科技与粤港澳大湾区国家威廉希尔官方网站
创新中心签署<b class='flag-5'>嵌入式</b><b class='flag-5'>数据库</b>合作备忘录

    数据库数据恢复—通过拼接数据库碎片恢复SQLserver数据库

    一个运行在存储上的SQLServer数据库,有1000多个文件,大小几十TB。数据库每10天生成一个NDF文件,每个NDF几百GB大小。数据库包含两个LDF文件。 存储损坏,数据库
    的头像 发表于 10-31 13:21 200次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—通过拼接<b class='flag-5'>数据库</b>碎片恢复SQLserver<b class='flag-5'>数据库</b>

    一文讲清什么是分布云化数据库

    分布云化数据库是一种先进的数据管理系统,它将传统的数据库威廉希尔官方网站 与分布计算、云计算和大数据处理技
    的头像 发表于 10-14 10:06 218次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备
    的头像 发表于 09-30 10:05 451次阅读

    数据库数据恢复—SQL Server数据库出现823错误的数据恢复案例

    SQL Server数据库故障: SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库
    的头像 发表于 09-20 11:46 338次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>出现823错误的<b class='flag-5'>数据</b>恢复案例

    一种常用嵌入式开发代码

    使用开源协议:GPL-2.0varch简介varch(we-architecture,意为我们的框架)是嵌入式C语言常用代码模块,包含了嵌入式中常用的算法库,
    的头像 发表于 09-04 08:06 456次阅读
    一种常用<b class='flag-5'>嵌入式</b>开发代码<b class='flag-5'>库</b>

    恒讯科技分析:云数据库rds和redis区别是什么如何选择?

    结构化数据,使用SQL作为查询语言,支持ACID事务和多种复杂查询操作。而Redis是一个基于内存的非关系型数据库,采用键值对模型存储数据
    的头像 发表于 08-19 15:31 378次阅读

    数字化时代的数据管理:多样化数据库选型指南

    挑战。数据库作为数据管理的核心威廉希尔官方网站 ,其选型对于系统至关重要。传统的关系型数据库(RDBMS)以其严格的ACID事务、优秀的一致性和安全性在企业应用中占据了长久的统治地位。然而,随着互联
    的头像 发表于 07-08 19:10 278次阅读
    数字化时代的<b class='flag-5'>数据</b>管理:多样化<b class='flag-5'>数据库</b>选型指南

    数据库数据恢复—raid5阵列上层Sql Server数据库数据恢复案例

    数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区
    的头像 发表于 05-08 11:43 503次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—raid5阵列上层Sql Server<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复案例

    嵌入式系统中集成Rust和Qt的实践

    Rust 拥有丰富的生态系统,用于序列化和反序列化、异步操作、解析不安全输入、线程、静态分析等,而 Qt 是一个 C++ 工具包,支持跨各种平台的丰富的、基于 GUI 的应用程序,从 iOS 到嵌入式Linux。Qt 应用程序
    发表于 05-03 10:26 1790次阅读
    在<b class='flag-5'>嵌入式</b>系统中集成<b class='flag-5'>Rust</b>和Qt的实践

    嵌入式人工智能的就业方向有哪些?

    网络编程开发及实战下 数据库开发 Linux应用开发综合实战 三:嵌入式Linux系统工程师,Linuxkernel工程师,嵌入式Linux驱动工程师 ARM体系结构与接口威廉希尔官方网站 系统移植
    发表于 02-26 10:17

    数据库数据恢复】Oracle数据库ASM实例无法挂载的数据恢复案例

    oracle数据库ASM磁盘组掉线,ASM实例不能挂载。数据库管理员尝试修复数据库,但是没有成功。
    的头像 发表于 02-01 17:39 519次阅读
    【<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复】Oracle<b class='flag-5'>数据库</b>ASM实例无法挂载的<b class='flag-5'>数据</b>恢复案例