Up and running
From zero to a fault-tolerant cluster
No extra services to install or manage. Run the binary on three machines, and rqlite forms the cluster for you.
- Start a node One process, one data directory. You now have SQLite behind an HTTP API.
- Join two more rqlite keeps the nodes in sync. Any one node can fail without taking the database offline.
- Query it from anywhere Plain HTTP and JSON, so there are no drivers to install. Client libraries are also available.
# 1. Start a node
$ rqlited -node-id 1 data/
# 2. Join two more, and a node can now fail with no downtime
$ rqlited -node-id 2 -http-addr localhost:4003 \
-raft-addr localhost:4004 -join localhost:4002 data2/
$ rqlited -node-id 3 -http-addr localhost:4005 \
-raft-addr localhost:4006 -join localhost:4002 data3/
# 3. Write over HTTP, no driver required
$ curl 'localhost:4001/db/execute' \
-H "Content-Type: text/plain" -d \
'CREATE TABLE foo (name TEXT, age INTEGER)'
$ curl 'localhost:4001/db/execute' \
-H "Content-Type: text/plain" -d \
'INSERT INTO foo(name, age) VALUES("fiona", 20)'
# 4. Query your data
$ curl -G 'localhost:4001/db/query' \
--data-urlencode 'q=SELECT * FROM foo'
{"results":[{"columns":["name", "age"],
"types":["integer","text"], "values":[["fiona", 20]]}]}
Why rqlite
The simplicity of SQLite, made highly available
Whether you are deploying resilient services in the cloud or reliable applications at the edge, rqlite gives you a relational database that is genuinely easy to operate.
Simple
- A single self-contained binary — deploy in seconds
- Easy-to-use HTTP API, no drivers needed
- Runs on Docker Compose and Kubernetes
Powerful
- Full SQL, full-text search, and JSON documents
- Load SQLite extensions for vector search and more
- Stream changes with built-in Change Data Capture
Reliable
- Clustering provides high availability and fault tolerance
- Tunable read consistency, from fast to linearizable
- Automated backups to S3, MinIO, and Google Cloud
In production
Teams are replacing heavier databases with rqlite
Replacing Postgres with rqlite has simplified the software we ship to customers. Its distributed architecture and clustering capabilities have reduced storage complexity, enabling lighter, more supportable Kubernetes clusters.
rqlite serves as our read-heavy key-value store, updates in seconds, and helps us globally distribute our application with ease. I’ve yet to find a better open source tool for the job.
See your cluster
A status console, built in
Inspect nodes, Raft state and the health of your cluster from the browser. Read about the UI applications →
Ready to try it?
Get a node running in under a minute — or come and ask us anything.
