Home Technology peripherals It Industry A new version of WeChat's full-platform terminal database WCDB is open source, with new support for C++ and Kotlin

A new version of WeChat's full-platform terminal database WCDB is open source, with new support for C++ and Kotlin

Apr 09, 2024 pm 04:16 PM
linux git database c++ wcdb WeChat open source Tencent open source

News on April 9th, WCDB is a terminal database based on SQLite open sourced by the WeChat team. Since it was open sourced in June 2017, more than ten versions have been launched.

As one of the most frequently used apps in China and even around the world, WeChat internally covers databases for various businesses, and the number of stored messages can reach millions or even tens of millions. This huge amount of data and increasingly rich application scenarios have brought constantly updated needs and challenges to WCDB, and the original code framework has gradually become difficult to cope with.

Therefore, starting from 2019, WeChat decided to abandon the backward compatibility of the interface and make every effort to create a more powerful new version of WCDB. After multiple iterations, WCDB's interface layer and core logic layer have been comprehensively improved, and many new features have also been accumulated.

Now, WeChat announced that the new version of WCDB, which has been majorly upgraded, will be open source. The main changes and updates include:

  • Richer development language Support: New support for C, complete support for Java and Kotlin language ORM, covering more terminal platforms;

  • More powerful SQL expression capabilities: Winq has been rewritten, Strengthening, etc.;

  • More secure data storage capabilities: new data backup solutions, repair solutions, etc.;

  • More flexible data expansion capabilities : Data migration, data compression, etc.;

  • More detailed performance optimization capabilities: FTS5 optimization, interruptible transactions, etc.

WCDB version 1.0 supports three development languages: Objective-C, Swift, and Java. Except for the three languages ​​​​of WCDB, they share the same version of SQLite and the same set of backup and repair logic. The code is all developed independently.

As WCDB continues to iterate, many of WCDB's new capabilities have been developed and verified online on the ObjC version. The Swift and Java versions are basically in a state of stopping iteration, and the differences between them are getting bigger and bigger. . In an ideal state, WCDB in different language versions should have the same capabilities. However, if the new logic of the ObjC version is re-implemented in Swift and Java, it will not only be a heavy workload, but also prone to errors. It will need to be verified online again, which is not very good. Reality.

Fortunately, The core logic of the ObjC version of WCDB is implemented in C, and ObjC is only used to implement the logic of the interface layer. Many libraries that support multiple development languages ​​use C language to implement core logic, and other languages ​​are only used to implement the interface layer, such as the very popular client-side NoSQL database component realmDB. WCDB can also be designed according to this idea, so that the ObjC version of WCDB only needs minor adjustments, and the core logic is completely implemented in C. Swift and Java access the C core logic through the bridging method.

In addition, in order to fully support the database development needs of different scenarios on each side of WeChat, WCDB has also expanded its support for C and Kotlin, thus fully covering the current mainstream languages ​​for terminal development.

微信全平台终端数据库 WCDB 全新版本开源,新增支持 C++ 和 Kotlin

At the interface level, the new version of WCDB fully supports the five major terminal development languages ​​​​C, Java, Kotlin, Swift and ObjC, covering The four major terminal platforms are Android, iOS, Windows and Linux. At the same time, WeChat has also rewritten and strengthened Winq, enabling developers to write arbitrary SQL using native syntax in various languages.

At the functional level, the new version of WCDB has launched a new data backup and repair solution, which improves the data repair rate and reduces the performance consumption of data backup to negligible.

In addition, WeChat has also launched two new functions: data migration and data compression, allowing developers to deal with the two major problems of excessive data aggregation and excessive data expansion in complex businesses through simple configuration. . The new version of WCDB also introduces new features such as FTS5 optimization and interruptible transactions, allowing developers to achieve more extreme performance optimization in specific scenarios.

The new version of WCDB has been open sourced on Github. The project address is attached to this site:

https://github.com/Tencent/wcdb

The above is the detailed content of A new version of WeChat's full-platform terminal database WCDB is open source, with new support for C++ and Kotlin. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1268
29
C# Tutorial
1248
24
The Future of C  : Adaptations and Innovations The Future of C : Adaptations and Innovations Apr 27, 2025 am 12:25 AM

The future of C will focus on parallel computing, security, modularization and AI/machine learning: 1) Parallel computing will be enhanced through features such as coroutines; 2) Security will be improved through stricter type checking and memory management mechanisms; 3) Modulation will simplify code organization and compilation; 4) AI and machine learning will prompt C to adapt to new needs, such as numerical computing and GPU programming support.

How to understand DMA operations in C? How to understand DMA operations in C? Apr 28, 2025 pm 10:09 PM

DMA in C refers to DirectMemoryAccess, a direct memory access technology, allowing hardware devices to directly transmit data to memory without CPU intervention. 1) DMA operation is highly dependent on hardware devices and drivers, and the implementation method varies from system to system. 2) Direct access to memory may bring security risks, and the correctness and security of the code must be ensured. 3) DMA can improve performance, but improper use may lead to degradation of system performance. Through practice and learning, we can master the skills of using DMA and maximize its effectiveness in scenarios such as high-speed data transmission and real-time signal processing.

What is static analysis in C? What is static analysis in C? Apr 28, 2025 pm 09:09 PM

The application of static analysis in C mainly includes discovering memory management problems, checking code logic errors, and improving code security. 1) Static analysis can identify problems such as memory leaks, double releases, and uninitialized pointers. 2) It can detect unused variables, dead code and logical contradictions. 3) Static analysis tools such as Coverity can detect buffer overflow, integer overflow and unsafe API calls to improve code security.

How to use the chrono library in C? How to use the chrono library in C? Apr 28, 2025 pm 10:18 PM

Using the chrono library in C can allow you to control time and time intervals more accurately. Let's explore the charm of this library. C's chrono library is part of the standard library, which provides a modern way to deal with time and time intervals. For programmers who have suffered from time.h and ctime, chrono is undoubtedly a boon. It not only improves the readability and maintainability of the code, but also provides higher accuracy and flexibility. Let's start with the basics. The chrono library mainly includes the following key components: std::chrono::system_clock: represents the system clock, used to obtain the current time. std::chron

How to optimize code How to optimize code Apr 28, 2025 pm 10:27 PM

C code optimization can be achieved through the following strategies: 1. Manually manage memory for optimization use; 2. Write code that complies with compiler optimization rules; 3. Select appropriate algorithms and data structures; 4. Use inline functions to reduce call overhead; 5. Apply template metaprogramming to optimize at compile time; 6. Avoid unnecessary copying, use moving semantics and reference parameters; 7. Use const correctly to help compiler optimization; 8. Select appropriate data structures, such as std::vector.

How to handle high DPI display in C? How to handle high DPI display in C? Apr 28, 2025 pm 09:57 PM

Handling high DPI display in C can be achieved through the following steps: 1) Understand DPI and scaling, use the operating system API to obtain DPI information and adjust the graphics output; 2) Handle cross-platform compatibility, use cross-platform graphics libraries such as SDL or Qt; 3) Perform performance optimization, improve performance through cache, hardware acceleration, and dynamic adjustment of the details level; 4) Solve common problems, such as blurred text and interface elements are too small, and solve by correctly applying DPI scaling.

How to understand ABI compatibility in C? How to understand ABI compatibility in C? Apr 28, 2025 pm 10:12 PM

ABI compatibility in C refers to whether binary code generated by different compilers or versions can be compatible without recompilation. 1. Function calling conventions, 2. Name modification, 3. Virtual function table layout, 4. Structure and class layout are the main aspects involved.

What is real-time operating system programming in C? What is real-time operating system programming in C? Apr 28, 2025 pm 10:15 PM

C performs well in real-time operating system (RTOS) programming, providing efficient execution efficiency and precise time management. 1) C Meet the needs of RTOS through direct operation of hardware resources and efficient memory management. 2) Using object-oriented features, C can design a flexible task scheduling system. 3) C supports efficient interrupt processing, but dynamic memory allocation and exception processing must be avoided to ensure real-time. 4) Template programming and inline functions help in performance optimization. 5) In practical applications, C can be used to implement an efficient logging system.

See all articles