All Projects → canonical → Dqlite

canonical / Dqlite

Licence: other
Embeddable, replicated and fault tolerant SQL engine.

Programming Languages

c
50402 projects - #5 most used programming language
M4
1887 projects

Projects that are alternatives of or similar to Dqlite

Rqlite
The lightweight, distributed relational database built on SQLite
Stars: ✭ 9,147 (+245.95%)
Mutual labels:  sqlite, raft
chiselstore
SQLite + Little Raft = 🚀
Stars: ✭ 398 (-84.95%)
Mutual labels:  sqlite, raft
Simple Crud
PHP library to provide magic CRUD in MySQL/Sqlite databases with zero configuration
Stars: ✭ 190 (-92.81%)
Mutual labels:  sqlite
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 2,315 (-12.44%)
Mutual labels:  sqlite
Kuery
Strongly typed SQL in Kotlin
Stars: ✭ 199 (-92.47%)
Mutual labels:  sqlite
Geopackage Js
GeoPackage JavaScript Library
Stars: ✭ 191 (-92.78%)
Mutual labels:  sqlite
Askgit
Query git repositories with SQL. Generate reports, perform status checks, analyze codebases. 🔍 📊
Stars: ✭ 2,707 (+2.38%)
Mutual labels:  sqlite
Elefant
Elefant, the refreshingly simple PHP CMS and web framework.
Stars: ✭ 188 (-92.89%)
Mutual labels:  sqlite
Endb
Key-value storage for multiple databases. Supports MongoDB, MySQL, Postgres, Redis, and SQLite.
Stars: ✭ 208 (-92.13%)
Mutual labels:  sqlite
Ok ip proxy pool
🍿爬虫代理IP池(proxy pool) python🍟一个还ok的IP代理池
Stars: ✭ 196 (-92.59%)
Mutual labels:  sqlite
Webhook.site
⚓️ Easily test HTTP webhooks with this handy tool that displays requests instantly.
Stars: ✭ 2,842 (+7.49%)
Mutual labels:  sqlite
Better Sqlite3
The fastest and simplest library for SQLite3 in Node.js.
Stars: ✭ 2,778 (+5.07%)
Mutual labels:  sqlite
Sofa Jraft
A production-grade java implementation of RAFT consensus algorithm.
Stars: ✭ 2,618 (-0.98%)
Mutual labels:  raft
Twitter To Sqlite
Save data from Twitter to a SQLite database
Stars: ✭ 203 (-92.32%)
Mutual labels:  sqlite
Pydbgen
Random dataframe and database table generator
Stars: ✭ 191 (-92.78%)
Mutual labels:  sqlite
Aioodbc
aioodbc - is a library for accessing a ODBC databases from the asyncio
Stars: ✭ 206 (-92.21%)
Mutual labels:  sqlite
Aspnetcoremultipleproject
ASP.NET Core API EF Core and Swagger
Stars: ✭ 189 (-92.85%)
Mutual labels:  sqlite
Trilogy
TypeScript SQLite layer with support for both native C++ & pure JavaScript drivers.
Stars: ✭ 195 (-92.62%)
Mutual labels:  sqlite
Express Graphql Boilerplate
Express GraphQL API with JWT Authentication and support for sqlite, mysql, and postgresql
Stars: ✭ 201 (-92.4%)
Mutual labels:  sqlite
Ionic Starter Template
Reinventing the wheel, again! Sorry Ionic Team... but there are many newbies learning on Youtube!
Stars: ✭ 208 (-92.13%)
Mutual labels:  sqlite

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].