設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

微信全平臺終端數(shù)據(jù)庫 WCDB 全新版本開源,新增支持 C++ 和 Kotlin

2024/4/9 11:31:13 來源:IT之家 作者:汪淼 責(zé)編:汪淼
感謝IT之家網(wǎng)友 XO醬、地板轟鳴 的線索投遞!

IT之家 4 月 9 日消息,WCDB 是微信團(tuán)隊開源的一款基于 SQLite 的終端數(shù)據(jù)庫。自 2017 年 6 月開源以來,已經(jīng)推出了十多個版本。

然而,作為國內(nèi)乃至全球范圍內(nèi)使用數(shù)據(jù)庫最頻繁的 App,微信內(nèi)部涉及上百種不同業(yè)務(wù)的數(shù)據(jù)庫,存儲的消息條數(shù)可達(dá)百萬乃至千萬級別。這種龐大的數(shù)據(jù)量和日益豐富的應(yīng)用場景,給 WCDB 帶來了不斷更新的需求和挑戰(zhàn),原有的代碼框架逐漸難以應(yīng)對。

因此,自 2019 年起,微信決定放棄接口的向后兼容性,全力打造一個更加強(qiáng)大的新版 WCDB。經(jīng)過多次迭代,WCDB 的接口層和核心邏輯層已經(jīng)得到了全面改進(jìn),同時也積累了許多新功能。

如今,微信宣布將該重大升級的新版本 WCDB 進(jìn)行開源,主要變化及更新包括:

  • 更豐富的開發(fā)語言支持:新增支持了 C++,完整支持了 Java 和 Kotlin 語言的 ORM,覆蓋更多終端平臺;

  • 更強(qiáng)大的 SQL 表達(dá)能力:對 Winq 進(jìn)行了重寫、強(qiáng)化等;

  • 更安全的數(shù)據(jù)存儲能力:全新的數(shù)據(jù)備份方案、修復(fù)方案等;

  • 更靈活的數(shù)據(jù)擴(kuò)展能力:數(shù)據(jù)遷移、數(shù)據(jù)壓縮等;

  • 更細(xì)致的性能優(yōu)化能力:FTS5 優(yōu)化、可中斷事務(wù)等。

據(jù)介紹,WCDB 1.0 版本支持 Objective-C、Swift、Java 三種開發(fā)語言,但是三種語言的 WCDB 除了共用同一個版本的 SQLite 和共用同一套備份修復(fù)邏輯,其他代碼都是獨立開發(fā)的。

隨著 WCDB 不斷迭代,WCDB 的很多新能力都是在 ObjC 版本上開發(fā)完成和上線驗證,Swift 和 Java 版本基本處于停止迭代的狀態(tài),他們之間的差異也越來越大。在理想的狀態(tài)下,不同語言版本的 WCDB 應(yīng)該擁有同樣的能力,但是如果把 ObjC 版本的新邏輯重新在 Swift 和 Java 上實現(xiàn)一遍,不僅工作量大,還容易出錯,需要再次上線驗證,不太現(xiàn)實。

幸運的是,ObjC 版本的 WCDB 的核心邏輯都是用 C++ 實現(xiàn)的,ObjC 只是用來實現(xiàn)接口層的邏輯。很多支持多種開發(fā)語言的庫都是使用 C++ 語言來實現(xiàn)核心邏輯,其他語言只是用來實現(xiàn)接口層,比如很熱門的客戶端 NoSQL 數(shù)據(jù)庫組件 realmDB 就是如此。WCDB 也可以按照這個思路來設(shè)計,這樣 ObjC 版本的 WCDB 只需小幅調(diào)整,將核心邏輯完全改用 C++ 來實現(xiàn),Swift 和 Java 通過橋接方法來接入 C++ 核心邏輯。

此外,為了充分支持微信各端不同場景的數(shù)據(jù)庫開發(fā)需求,WCDB 還擴(kuò)展支持了 C++ 和 Kotlin,這樣就完整覆蓋了現(xiàn)在終端開發(fā)的主流語言。

圖片

在接口層面,新版 WCDB 全面支持了 C++、Java、Kotlin、Swift 和 ObjC 這五種主要的終端開發(fā)語言,覆蓋了 Android、iOS、Windows 和 Linux 這四大終端平臺。同時,微信還對 Winq 進(jìn)行了重寫和強(qiáng)化,使開發(fā)者能夠在各種語言中使用原生語法編寫任意 SQL。

在功能層面,新版 WCDB 推出了全新的數(shù)據(jù)備份和修復(fù)方案,提升了數(shù)據(jù)修復(fù)率,同時將數(shù)據(jù)備份的性能消耗降至可忽略不計。

此外,微信還重點推出了數(shù)據(jù)遷移和數(shù)據(jù)壓縮這兩個新功能,讓開發(fā)者通過簡單的配置,就能處理復(fù)雜業(yè)務(wù)中的數(shù)據(jù)過度聚集和數(shù)據(jù)過度膨脹這兩大難題。新版 WCDB 還推出了 FTS5 優(yōu)化和可中斷事務(wù)等新特性,使開發(fā)者在特定場景下可以實現(xiàn)更極致的性能優(yōu)化。

新版 WCDB 已在 Github 開源,IT之家附項目地址:

https://github.com/Tencent/wcdb

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:數(shù)據(jù)庫,WCDB,微信開源,騰訊開源

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會買 要知