surrealkv -- 基于 Rust 的 low level、版本化、嵌入式、符合 ACID 的鍵值數(shù)據(jù)庫
surrealkv 是基于 Rust 中的版本化、low level、嵌入式鍵值數(shù)據(jù)庫。它持久保存到磁盤,符合 ACID,并支持多個讀取器和寫入器。
特性
內(nèi)存數(shù)據(jù)庫
可嵌入
ACID 語義,具有豐富的事務(wù)支持和回滾
內(nèi)置項(xiàng)目版本控制
多版本并發(fā)控制
多個并發(fā)讀取器和寫入器
持久的僅附加文件格式以實(shí)現(xiàn)持久性(支持 WAL)
rspack -- 基于 Rust 的高性能模塊打包工具
Rspack(讀音為 /'ɑresp?k/,)是一個基于 Rust 的高性能構(gòu)建引擎, 具備與 Webpack 生態(tài)系統(tǒng)的互操作性,可以被 Webpack 項(xiàng)目低成本集成,并提供更好的構(gòu)建性能。
初衷
作者寫道:創(chuàng)建 Rspack 的原因是要解決在 ByteDance 維護(hù)構(gòu)建工具時遇到的各種性能問題。由于 ByteDance 內(nèi)部存在許多巨石應(yīng)用,它們都具有復(fù)雜的構(gòu)建配置,生產(chǎn)環(huán)境構(gòu)建需要耗費(fèi)十幾分鐘,甚至超過半小時;開發(fā)環(huán)境的耗時也超過十幾分鐘。我們在 Webpack 上嘗試了多種方法來優(yōu)化這些巨石應(yīng)用,但是效果甚微。我們意識到在 Webpack 上的優(yōu)化已經(jīng)難以為繼,必須要從底層改造,才能適應(yīng)我們的需求。同時在聆聽解決業(yè)務(wù)各種復(fù)雜的構(gòu)建需求中,我們意識到開發(fā)人員對構(gòu)建工具有以下要求:
快速的 Dev 啟動性能。 npm run dev 是開發(fā)者每天需要運(yùn)行很多次的命令,但大型項(xiàng)目每次都需要等待 10 分鐘,這對于工程師來說非常痛苦,因此優(yōu)化開發(fā)模式下啟動的時間至關(guān)重要。
高效的 Build 性能。 npm run build 經(jīng)常在 CI/CD 環(huán)境中運(yùn)行,它決定了應(yīng)用生產(chǎn)交付的效率。有些應(yīng)用在生產(chǎn)環(huán)境中需要 20 到 30 分鐘的構(gòu)建時間,如果能縮短這段時間,對開發(fā)流程也將非常有幫助。
靈活的配置。 用戶工程的配置非常靈活,不夠統(tǒng)一。在之前的嘗試中,將 Webpack 配置遷移到其他構(gòu)建工具時,我們遇到了許多問題,因?yàn)槠渌麡?gòu)建工具的配置不如 Webpack 靈活。
生產(chǎn)環(huán)境的優(yōu)化能力。 在啟用 Rspack 之前,我們嘗試了社區(qū)內(nèi)的各種方案,但它們都面臨著一定程度的生產(chǎn)環(huán)境負(fù)優(yōu)化,例如拆分包不夠精細(xì)等。因此,優(yōu)化生產(chǎn)環(huán)境的產(chǎn)物是我們不可放棄的功能。
在確定了這四個需求后,我們調(diào)查了社區(qū)中的所有技術(shù)方案,它們通常都能很好的滿足其中個別需求,但沒有一個方案能同時滿足所有條件。因此,我們決定自研 Rspack。
Rspack 目前的狀態(tài)
到 2023 年 3 月為止 Rspack 已經(jīng)開發(fā)了 11 個月,雖然 Rspack 仍處于比較早期的狀態(tài),且缺失了一些 webpack 的功能,但根據(jù)二八原則,目前的功能已經(jīng)能夠滿足大多數(shù)項(xiàng)目的需求。同時,我們已經(jīng)在內(nèi)部的多個業(yè)務(wù)上完成了落地,取得了 5~10 倍編譯性能的提升。目前的性能仍然存在較大提升空間,我們會持續(xù)對 Rspack 進(jìn)行更深入的性能優(yōu)化。Rspack 已經(jīng)完成了對 webpack 主要配置的兼容,并且適配了 webpack 的 loader 架構(gòu)。目前,你已經(jīng)可以在 Rspack 中無縫使用你熟悉的各種 loader,如 babel-loader、less-loader、sass-loader、vue-loader 等等。
目前 Rspack 對緩存支持還比較簡單,僅支持了內(nèi)存級別的緩存,未來我們會建設(shè)更強(qiáng)的緩存能力,包括可遷移的持久化緩存,這將帶來更大的想象空間,如在 monorepo 里不同的機(jī)器上都可以復(fù)用 Rspack 的云端緩存,提升大型項(xiàng)目的緩存命中率。
特性
啟動速度極快: 基于 Rust 實(shí)現(xiàn),構(gòu)建速度極快,帶給你極致的開發(fā)體驗(yàn)。
閃電般的 HMR: 內(nèi)置增量編譯機(jī)制,HMR 速度極快,完全勝任大型項(xiàng)目的開發(fā)。
兼容 webpack 生態(tài): 針對 webpack 的架構(gòu)和生態(tài)進(jìn)行兼容,無需從頭搭建生態(tài)。
內(nèi)置常見構(gòu)建能力: 對 TypeScript、JSX、CSS、CSS Modules、Sass 等提供開箱即用的支持。
默認(rèn)生產(chǎn)優(yōu)化: 默認(rèn)內(nèi)置多種優(yōu)化策略,如 Tree Shaking、代碼壓縮等等。
框架無關(guān): 不和任何前端框架綁定,保證足夠的靈活性。
審核編輯:劉清
-
嵌入式
+關(guān)注
關(guān)注
5045文章
18816瀏覽量
298475 -
讀取器
+關(guān)注
關(guān)注
0文章
45瀏覽量
5214 -
Rust
+關(guān)注
關(guān)注
1文章
226瀏覽量
6497
原文標(biāo)題:【Rust日報】2023-12-20 surrealkv -- 基于 Rust 的 嵌入式、符合 ACID 的鍵值數(shù)據(jù)庫
文章出處:【微信號:Rust語言中文社區(qū),微信公眾號:Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論