当前位置: 首页 > 资讯 > 软件 > WCDB全平台数据库革新升级:《微信》开源新版本,扩展至C++与Kotlin生态
  • 0
  • 0
  • 分享

WCDB全平台数据库革新升级:《微信》开源新版本,扩展至C++与Kotlin生态

微信 2024-04-09 13:09:07 爱吃爆米花

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++、Java、Kotlin、Swift 和 ObjC 这五种主要的终端开发语言,覆盖了 Android、iOS、Windows 和 Linux 这四大终端平台。同时,微信还对 Winq 进行了重写和强化,使开发者能够在各种语言中使用原生语法编写任意 SQL。

在功能层面,新版 WCDB 推出了全新的数据备份和修复方案,提升了数据修复率,同时将数据备份的性能消耗降至可忽略不计。

此外,微信还重点推出了数据迁移和数据压缩这两个新功能,让开发者通过简单的配置,就能处理复杂业务中的数据过度聚集和数据过度膨胀这两大难题。新版 WCDB 还推出了 FTS5 优化和可中断事务等新特性,使开发者在特定场景下可以实现更极致的性能优化。

所 属 资 源
微信电脑版
微信电脑版
软件 / 社交聊天 /
十亿人都在使用的跨平台的通讯工具
去下载
来源:it之家
免责声明:本内容来自互联网,不代表本网站的观点和立场,如有侵犯你的权益请来信告知;如果你觉得好,欢迎分享给你的朋友,本文网址 https://wangzhidaquan.com/zixun/33084.html
文章标签
评论

文明上网,理性发言,共同做网络文明传播者

验证码
提交
热榜
热门游戏
换一换
热门软件
换一换