Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Dbeaver | 35,206 | 21 hours ago | 1,910 | apache-2.0 | Java | |||||
Free universal database tool and SQL client | ||||||||||
Prisma | 35,087 | 442 | 16 hours ago | 4,993 | September 24, 2022 | 3,033 | apache-2.0 | TypeScript | ||
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB | ||||||||||
Typeorm | 32,562 | 1,994 | 3,683 | 2 days ago | 784 | October 05, 2023 | 2,296 | mit | TypeScript | |
ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms. | ||||||||||
Directus | 23,937 | 239 | 16 hours ago | 95 | November 16, 2023 | 391 | other | TypeScript | ||
The Modern Data Stack 🐰 — Directus is an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database. | ||||||||||
Sqlitebrowser | 19,299 | 3 days ago | May 18, 2021 | 640 | other | C++ | ||||
Official home of the DB Browser for SQLite (DB4S) project. Previously known as "SQLite Database Browser" and "Database Browser for SQLite". Website at: | ||||||||||
Rqlite | 14,267 | 3 | 3 | 16 hours ago | 42 | April 14, 2021 | 55 | mit | Go | |
The lightweight, distributed relational database built on SQLite | ||||||||||
Beekeeper Studio | 14,099 | 16 hours ago | 517 | gpl-3.0 | Vue | |||||
Modern and easy to use SQL client for MySQL, Postgres, SQLite, SQL Server, and more. Linux, MacOS, and Windows. | ||||||||||
Migrate | 12,930 | 1,027 | 2 days ago | 132 | June 11, 2023 | 315 | other | Go | ||
Database migrations. CLI and Golang library. | ||||||||||
Greendao | 12,595 | 781 | 6 | 18 days ago | 11 | November 12, 2015 | 235 | Java | ||
greenDAO is a light & fast ORM solution for Android that maps objects to SQLite databases. | ||||||||||
Sql.js | 11,834 | 399 | 456 | 10 days ago | 36 | November 28, 2023 | 125 | other | JavaScript | |
A javascript library to run SQLite on the web. |
rqlite is an easy-to-use, lightweight, distributed relational database, which uses SQLite as its storage engine.
rqlite is simple to deploy, operating and accessing it is very straightforward, and its clustering capabilities provide you with fault-tolerance and high-availability. rqlite is available for Linux, macOS, and Microsoft Windows, and can be built for many target CPUs, including x86, AMD, MIPS, RISC, PowerPC, and ARM.
Check out the rqlite FAQ.
rqlite gives you the functionality of a rock solid, fault-tolerant, replicated relational database, but with very easy installation, deployment, and operation. With it you've got a lightweight and reliable distributed relational data store.
You could use rqlite as part of a larger system, as a central store for some critical relational data, without having to run larger, more complex distributed databases.
Finally, if you're interested in understanding how distributed systems actually work, rqlite is a good example to study. Much thought has gone into its design and implementation, with clear separation between the various components, including storage, distributed consensus, and API.
rqlite uses Raft to achieve consensus across all the instances of the SQLite databases, ensuring that every change made to the system is made to a quorum of SQLite databases, or none at all. You can learn more about the design here.
The quickest way to get running is to download a pre-built release binary, available on the GitHub releases page. Once installed, you can start a single rqlite node like so:
rqlited -node-id 1 ~/node.1
This single node automatically becomes the leader. You can pass -h
to rqlited
to list all configuration options.
docker run -p4001:4001 rqlite/rqlite
Check out the rqlite Docker page for more details on running nodes via Docker.
brew install rqlite
While not strictly necessary to run rqlite, running multiple nodes means you'll have a fault-tolerant cluster. Start two more nodes, allowing the cluster to tolerate the failure of a single node, like so:
rqlited -node-id 2 -http-addr localhost:4003 -raft-addr localhost:4004 -join http://localhost:4001 ~/node.2
rqlited -node-id 3 -http-addr localhost:4005 -raft-addr localhost:4006 -join http://localhost:4001 ~/node.3
This demonstration shows all 3 nodes running on the same host. In reality you probably wouldn't do this, and then you wouldn't need to select different -http-addr and -raft-addr ports for each rqlite node.
With just these few steps you've now got a fault-tolerant, distributed relational database. For full details on creating and managing real clusters, including running read-only nodes, check out this documentation.
Let's insert some records via the rqlite CLI, using standard SQLite commands. Once inserted, these records will be replicated across the cluster, in a durable and fault-tolerant manner.
$ rqlite
127.0.0.1:4001> CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY, name TEXT)
0 row affected (0.000668 sec)
127.0.0.1:4001> .schema
+-----------------------------------------------------------------------------+
| sql |
+-----------------------------------------------------------------------------+
| CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY, name TEXT) |
+-----------------------------------------------------------------------------+
127.0.0.1:4001> INSERT INTO foo(name) VALUES("fiona")
1 row affected (0.000080 sec)
127.0.0.1:4001> SELECT * FROM foo
+----+-------+
| id | name |
+----+-------+
| 1 | fiona |
+----+-------+
RANDOM()
, are rewritten by rqlite before being passed to the Raft system and SQLite. To learn more about rqlite's support for non-deterministic functions, check out the documentation..schema
or .tables
are not directly supported by the API, but the rqlite CLI supports some very similar functionality. This is because those commands are features of the sqlite3
command, not SQLite itself.How do I pronounce rqlite? For what it's worth I try to pronounce it "ree-qwell-lite". But it seems most people, including me, often pronounce it "R Q lite".