69933cbe35
The AWS session and s3 manager are concurrent safe, it should be reused whenever possible: Sessions are safe to use concurrently as long as the Session is not being modified. Sessions should be cached when possible, because creating a new Session will load all configuration values from the environment, and config files each time the Session is created. See https://pkg.go.dev/github.com/aws/aws-sdk-go/aws/session Currently, an aws session and s3 client/manager are created every time a call to Upload, CurrentID or Download is made. I changed it so it creates one session and S3 manager during app startup and reuse it afterwards. |
8 months ago | |
---|---|---|
.circleci | 8 months ago | |
.github/ISSUE_TEMPLATE | 8 months ago | |
DOC | 1 year ago | |
auth | 9 months ago | |
auto | 8 months ago | |
aws | 8 months ago | |
cluster | 8 months ago | |
cmd | 8 months ago | |
command | 8 months ago | |
db | 8 months ago | |
disco | 9 months ago | |
http | 8 months ago | |
log | 8 months ago | |
progress | 9 months ago | |
queue | 9 months ago | |
random | 1 year ago | |
rtls | 9 months ago | |
scripts | 8 months ago | |
snapshot | 8 months ago | |
store | 8 months ago | |
system_test | 8 months ago | |
tcp | 9 months ago | |
testdata | 9 months ago | |
.gitignore | 1 year ago | |
CHANGELOG.md | 8 months ago | |
CONTRIBUTING.md | 2 years ago | |
LICENSE | 9 months ago | |
README.md | 8 months ago | |
Vagrantfile | 2 years ago | |
appveyor.yml | 8 months ago | |
doc.go | 2 years ago | |
go.mod | 8 months ago | |
go.sum | 8 months ago | |
vagrant_setup.sh | 8 months ago |
README.md
rqlite combines SQLite's simplicity with the power of a robust, fault-tolerant distributed database. It's designed for easy deployment and lightweight operation, offering a developer-friendly and operator-centric solution for Linux, macOS, and Windows, as well as various CPU platforms.
Check out the rqlite FAQ.
Why run rqlite?
rqlite is your solution for a rock-solid, fault-tolerant, relational database with effortless installation, deployment, and operation. It's ideal as a lightweight, distributed relational data store for both developers and operators. Think Consul or etcd, but with relational modeling available.
You can use rqlite for critical relational data in larger systems. And if you're interested in understanding how distributed systems actually work, it's a good example to study. A lot of thought has gone into its design, separating storage, consensus, and API clearly.
Key features
- Easy Deployment: Up and running in seconds, with no separate SQLite installation.
- Developer-Friendly: Straightforward HTTP API, CLI, and client libraries.
- Fully Replicated: SQL database with full-text search and JSON support.
- Dynamic Clustering: Integrates with Kubernetes, Consul, etcd, and DNS for automatic clustering.
- Robust Security: Extensive encryption and TLS support.
- Flexible Consistency: Customize read/write performance and durability.
- Scalable Reads: Read-only nodes for enhanced scalability.
- Transactions: Supports a form of transactions.
- Easy Backups: Hot backups, including automatic backups to AWS S3 and MinIO, as well as restore directly from SQLite.
Quick Start
Get up and running quickly with our Quick Start guide.
Pronunciation
Common pronunciations of rqlite include "R Q lite" and "ree-qwell-lite".