https://github.com/canonical/dqlite Skip to content Sign up * Why GitHub? + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} canonical / dqlite Public * Notifications * Fork 144 * Star 2.8k * Embeddable, replicated and fault tolerant SQL engine. dqlite.io View license 2.8k stars 144 forks Star Notifications * Code * Issues 18 * Pull requests 1 * Actions * Security * Insights More * Code * Issues * Pull requests * Actions * Security * Insights master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 1 branch 34 tags Code Latest commit @stgraber stgraber Merge pull request #350 from MathieuBordere/mutex-cleanup ... 22edfc5 Jan 26, 2022 Merge pull request #350 from MathieuBordere/mutex-cleanup server: remove unused mutex 22edfc5 Git stats * 1,095 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows Update for new PPA Dec 30, 2021 ac Move C code to top-level dir Jul 30, 2018 doc Use correct URL to project website Aug 3, 2020 include Release v1.9.0 Aug 3, 2021 m4 fix: de-duplicate m4 macros in acinclude.m4 and m4/ Aug 4, 2020 src server: remove unused mutex Jan 10, 2022 test test_tuple: Fix type comparisons and cast warnings Nov 8, 2021 .clang-format Render instance name in struct config Jun 23, 2019 .dir-locals.el Rename dqlite to dqlite_task Aug 24, 2019 .gitignore Replace hand-written Makefile rules with AX_CODE_COVERAGE Aug 20, 2019 AUTHORS AUTHORS: Update to refer to git Nov 4, 2021 Dockerfile Removed libco, refactored Sep 10, 2020 LICENSE Switch license to LGPLv3 plus linking exception Oct 24, 2019 Makefile.am Revert "Makefile: Define NDEBUG when not debugging" Oct 28, 2021 README.md Fix LICENSE path linked from README Dec 26, 2021 VERSION Publish pre-built release tarballs on Github Jul 30, 2018 configure.ac Release v1.9.0 Aug 3, 2021 dqlite.pc.in Drop libco from dqlite.pc.in Sep 10, 2020 View code [ ] dqlite Design highlights License Try it Media Wire protocol Install Build Usage Notes README.md dqlite Build Status codecov dqlite is a C library that implements an embeddable and replicated SQL database engine with high-availability and automatic failover. The acronym "dqlite" stands for "distributed SQLite", meaning that dqlite extends SQLite with a network protocol that can connect together various instances of your application and have them act as a highly-available cluster, with no dependency on external databases. Design highlights * Asynchronous single-threaded implementation using libuv as event loop. * Custom wire protocol optimized for SQLite primitives and data types. * Data replication based on the Raft algorithm and its efficient C-raft implementation. License The dqlite library is released under a slightly modified version of LGPLv3, that includes a copyright exception allowing users to statically link the library code in their project and release the final work under their own terms. See the full license text. Try it The simplest way to see dqlite in action is to use the demo program that comes with the Go dqlite bindings. Please see the relevant documentation in that project. Media A talk about dqlite was given at FOSDEM 2020, you can watch it here. Wire protocol If you wish to write a client, please refer to the wire protocol documentation. Install If you are on a Debian-based system, you can get the latest development release from dqlite's dev PPA: sudo add-apt-repository ppa:dqlite/dev sudo apt-get update sudo apt-get install libdqlite-dev Build To build libdqlite from source you'll need: * A reasonably recent version of libuv (v1.8.0 or beyond). * A reasonably recent version of sqlite3-dev * A build of the C-raft Raft library. Your distribution should already provide you with a pre-built libuv shared library and libsqlite3-dev. To build the raft library: git clone https://github.com/canonical/raft.git cd raft autoreconf -i ./configure make sudo make install cd .. Once all the required libraries are installed, in order to build the dqlite shared library itself, you can run: autoreconf -i ./configure make sudo make install Usage Notes Detailed tracing will be enabled when the environment variable LIBDQLITE_TRACE is set before startup. About Embeddable, replicated and fault tolerant SQL engine. dqlite.io Topics database sqlite raft hacktoberfest Resources Readme License View license Stars 2.8k stars Watchers 64 watching Forks 144 forks Releases 5 v1.9.1 Latest Jan 17, 2022 + 4 releases Contributors 21 * * * * * * * * * * * + 10 contributors Languages * C 89.2% * M4 10.2% * Other 0.6% * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.