[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6646":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},6646,"dqlite","canonical\u002Fdqlite","canonical","Embeddable, replicated and fault-tolerant SQL engine.","https:\u002F\u002Fdqlite.io",null,"C",4332,247,75,43,0,1,18,29.18,"Other",false,"main",[24,25,26],"database","raft","sqlite","2026-06-12 02:01:27","dqlite [![CI Tests](https:\u002F\u002Fgithub.com\u002Fcanonical\u002Fdqlite\u002Factions\u002Fworkflows\u002Fbuild-and-test.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fcanonical\u002Fdqlite\u002Factions\u002Fworkflows\u002Fbuild-and-test.yml) [![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fcanonical\u002Fdqlite\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fcanonical\u002Fdqlite)\n======\n\n[English](.\u002FREADME.md)|[简体中文](.\u002FREADME_CH.md)\n\n[dqlite](https:\u002F\u002Fdqlite.io) is a C library that implements an embeddable and\nreplicated SQL database engine with high availability and automatic failover.\n\nThe acronym \"dqlite\" stands for \"distributed SQLite\", meaning that dqlite\nextends [SQLite](https:\u002F\u002Fsqlite.org\u002F) with a network protocol that can connect\ntogether various instances of your application and have them act as a\nhighly-available cluster, with no dependency on external databases.\n\nDesign highlights\n----------------\n\n* Asynchronous single-threaded implementation using [libuv](https:\u002F\u002Flibuv.org\u002F)\n  as event loop.\n* Custom wire protocol optimized for SQLite primitives and data types.\n* Data replication based on the [Raft](https:\u002F\u002Fraft.github.io\u002F) algorithm.\n\nLicense\n-------\n\nThe dqlite library is released under a slightly modified version of LGPLv3,\nthat includes a copyright exception allowing users to statically link the\nlibrary code in their project and release the final work under their own terms.\nSee the full [license](https:\u002F\u002Fgithub.com\u002Fcanonical\u002Fdqlite\u002Fblob\u002Fmain\u002FLICENSE)\ntext.\n\nCompatibility\n-------------\n\ndqlite runs on Linux and requires a kernel with support for [native async\nI\u002FO](https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman2\u002Fio_setup.2.html) (not to be confused\nwith [POSIX AIO](https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman7\u002Faio.7.html)).\n\nTry it\n-------\n\nThe simplest way to see dqlite in action is to use the demo program that comes\nwith the Go dqlite bindings. Please see the [relevant\ndocumentation](https:\u002F\u002Fgithub.com\u002Fcanonical\u002Fgo-dqlite#demo) in that project.\n\nMedia\n-----\n\nA talk about dqlite was given at FOSDEM 2020, you can watch it\n[here](https:\u002F\u002Ffosdem.org\u002F2020\u002Fschedule\u002Fevent\u002Fdqlite\u002F).\n\n[Here](https:\u002F\u002Fgcore.com\u002Fblog\u002Fcomparing-litestream-rqlite-dqlite\u002F) is a blog\npost from 2022 comparing dqlite with rqlite and Litestream, other replication\nsoftware for SQLite.\n\nWire protocol\n-------------\n\nIf you wish to write a client, please refer to the [wire\nprotocol](https:\u002F\u002Fdqlite.io\u002Fdocs\u002Fprotocol) documentation.\n\nInstall\n-------\n\nIf you are on a Debian-based system, you can get the latest development release\nfrom dqlite's [dev PPA](https:\u002F\u002Flaunchpad.net\u002F~dqlite\u002F+archive\u002Fubuntu\u002Fdev):\n\n```\nsudo add-apt-repository ppa:dqlite\u002Fdev\nsudo apt update\nsudo apt install libdqlite-dev\n```\n\nContributing\n------------\n\nSee [CONTRIBUTING.md](.\u002FCONTRIBUTING.md).\n\nBuild\n-----\n\nTo build libdqlite from source you'll need:\n\n* Build dependencies: pkg-config and GNU Autoconf, Automake, libtool, and make\n* A reasonably recent version of [libuv](https:\u002F\u002Flibuv.org\u002F) (v1.8.0 or later), with headers.\n* A reasonably recent version of [SQLite](https:\u002F\u002Fsqlite.org\u002F) (v3.22.0 or later), with headers.\n* Optionally, a reasonably recent version of [LZ4](https:\u002F\u002Flz4.org\u002F) (v1.7.1 or later), with headers.\n\nYour distribution should already provide you with these dependencies. For\nexample, on Debian-based distros:\n\n```\nsudo apt install pkg-config autoconf automake libtool make libuv1-dev libsqlite3-dev liblz4-dev\n```\n\nWith these dependencies installed, you can build and install the dqlite shared\nlibrary and headers as follows:\n\n```\n$ autoreconf -i\n$ .\u002Fconfigure\n$ make\n$ sudo make install\n```\n\nThe default installation prefix is `\u002Fusr\u002Flocal`; you may need to run\n\n```\n$ sudo ldconfig\n```\n\nto enable the linker to find `libdqlite.so`. To install to a different prefix,\nreplace the configure step with something like\n\n```\n$ .\u002Fconfigure --prefix=\u002Fusr\n```\n\nBuilding for static linking\n---------------------------\n\nIf you're building dqlite for eventual use in a statically-linked\nbinary, there are some additional considerations. You should pass\n`--with-static-deps` to the configure script; this disables code that\nrelies on dependencies being dynamically linked. (Currently it only\naffects the test suite, but you should use it even when building\n`libdqlite.a` only for future compatibility.)\n\nWhen linking libdqlite with musl libc, it's recommended to increase\nthe default stack size, which is otherwise too low for dqlite's\nneeds:\n\n```\nLDFLAGS=\"-Wl,-z,stack-size=1048576\"\n```\n\nThe `contrib\u002Fbuild-static.sh` script demonstrates building and\ntesting dqlite with all dependencies (including libc) statically\nlinked.\n\nUsage notes\n-----------\n\nDetailed tracing will be enabled when the environment variable\n`LIBDQLITE_TRACE` is set before startup.  The value of it can be in `[0..5]`\nrange and represents a tracing level, where `0` means \"no traces\" emitted, `5`\nenables minimum (FATAL records only), and `1` enables maximum verbosity (all:\nDEBUG, INFO, WARN, ERROR, FATAL records).\n","dqlite是一个可嵌入的、复制的且具有容错能力的SQL引擎。它基于C语言开发，通过Raft算法实现数据复制，确保高可用性和自动故障转移。dqlite扩展了SQLite的功能，使其能够通过网络协议连接多个应用实例，形成一个高可用集群，无需依赖外部数据库。该项目采用异步单线程设计，并利用libuv作为事件循环，同时定义了一个针对SQLite原语和数据类型的优化通信协议。适用于需要在分布式环境中保持数据一致性与可靠性的场景，如微服务架构下的数据库层解决方案。",2,"2026-06-11 03:08:02","top_language"]