Why Walrust?
Walrust is optimized to use less memory than Litestream for SQLite replication to S3.
Memory Efficiency
Section titled “Memory Efficiency”Walrust uses significantly less memory than Litestream, especially when watching multiple databases:
Memory Usage
Section titled “Memory Usage”| Databases | Litestream | Walrust | Reduction |
|---|---|---|---|
| 1 | 36 MB | 19 MB | 47% |
| 10 | 55 MB | 19 MB | 65% |
| 100 | 160 MB | 20 MB | 88% |
Measured with 100KB databases on macOS, syncing to Tigris S3.
Walrust’s memory usage remains relatively constant (~19-20 MB) as database count increases, while Litestream’s memory grows with each database.
One walrust process watches all databases:
walrust watch \ /var/lib/data/tenant-*.db \ -b s3://backupsOr with a config file:
[s3]bucket = "backups"endpoint = "https://fly.storage.tigris.dev"
[[databases]]path = "/var/lib/data/*.db"prefix = "tenants"Litestream
Section titled “Litestream”Litestream is the original SQLite replication tool and the inspiration for walrust. Walrust uses the same LTX file format, which provides compatibility between the tools.
When to use Litestream:
- Mature ecosystem and community support
- SFTP/Azure Blob storage backends
When to use walrust:
- Multi-database deployments (100+ databases)
- Memory-constrained environments