首頁  >  文章  >  科技週邊  >  微信全平台終端資料庫 WCDB 全新版本開源,新增支援 C++ 與 Kotlin

微信全平台終端資料庫 WCDB 全新版本開源,新增支援 C++ 與 Kotlin

PHPz
PHPz轉載
2024-04-09 16:16:241190瀏覽

4月9日訊息,WCDB是微信團隊開源的一款基於SQLite的終端資料庫。自2017年6月開源以來,已經推出了十多個版本。

作為國內乃至全球範圍內使用最頻繁的App之一,微信內部涵蓋了各種不同業務的資料庫,儲存的訊息數可達百萬乃至千萬等級。這種龐大的資料量和日益豐富的應用場景,為WCDB 帶來了不斷更新的需求和挑戰,原有的程式碼框架逐漸難以應付。

因此,自 2019 年起,微信決定放棄介面的向後相容性,全力打造一個更強大的新版 WCDB。經過多次迭代,WCDB 的介面層和核心邏輯層已經得到了全面改進,同時也累積了許多新功能。

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

  • 更豐富的開發語言支援:新增支援了C ,完整支援了Java 和Kotlin 語言的ORM,涵蓋更多終端平台;

  • 更強大的SQL 表達能力:對Winq 進行了重寫、強化等;

  • 更安全的資料儲存能力:全新的資料備份方案、修復方案等;

  • ##更靈活的資料擴充能力:資料遷移、資料壓縮等;

  • 更細緻的效能最佳化能力:FTS5 最佳化、可中斷交易等。

WCDB 1.0版本支援Objective-C、Swift、Java三種開發語言,除了三種語言的WCDB除了共用相同版本的SQLite和共用相同套備份修復邏輯,其餘程式碼都是獨立開發的。

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

幸運的是,

ObjC 版本的 WCDB 的核心邏輯都是用 C 實作的,ObjC 只是用來實作介面層的邏輯。許多支援多種開發語言的函式庫都是使用 C 語言來實現核心邏輯,其他語言只是用來實作介面層,例如很熱門的客戶端 NoSQL 資料庫元件 realmDB 就是如此。 WCDB 也可以按照這個思路來設計,這樣 ObjC 版本的 WCDB 只需小幅調整,將核心邏輯完全改用 C 來實現,Swift 和 Java 通過橋接方法來接入 C 核心邏輯。

此外,為了充分支援微信各端不同場景的資料庫開發需求,

WCDB 也擴展支援了 C 和 Kotlin,這樣就完整涵蓋了現在終端開發的主流語言

微信全平台终端数据库 WCDB 全新版本开源,新增支持 C++ 和 Kotlin
在介面層面,新版WCDB 全面支援了C 、Java、Kotlin、Swift 和ObjC 這五種主要的終端開發語言,涵蓋了Android、iOS、Windows 和Linux 這四大終端平台。同時,微信也對 Winq 進行了重寫和強化,

使開發者能夠在各種語言中使用原生語法編寫任意 SQL

在功能層面,新版 WCDB 推出了全新的資料備份和修復方案,提升了資料修復率,同時將資料備份的效能消耗降至可忽略不計。

此外,微信還重點推出了資料遷移和資料壓縮這兩個新功能,讓開發者透過簡單的配置,就能處理複雜業務中的資料過度聚集和資料過度膨脹這兩大難題。新版 WCDB 也推出了 FTS5 最佳化和可中斷事務等新特性,使開發者在特定場景下可以實現更極致的效能最佳化。

新版WCDB 已在Github 開源,本站附專案位址:

https://github.com/Tencent/wcdb #

以上是微信全平台終端資料庫 WCDB 全新版本開源,新增支援 C++ 與 Kotlin的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:ithome.com。如有侵權,請聯絡admin@php.cn刪除