Skip to content

Why Walrust?

Walrust replicates SQLite databases to S3-compatible storage. It does the same thing as Litestream with a different set of tradeoffs.

Walrust uses less memory than Litestream when watching multiple databases:

DatabasesLitestreamWalrust
136 MB19 MB
1055 MB19 MB
100160 MB20 MB

Measured with 100KB databases, syncing to Tigris S3 on macOS.

Memory stays flat because walrust shares one S3 client (with connection pooling) across all databases and uses WAL polling instead of per-database file watchers.

  • You’re watching many SQLite databases (10+) and memory matters
  • You want TOML config instead of YAML
  • You want a Python API for scripting backups
  • You need SFTP or Azure Blob storage backends
  • You want a mature tool with community support
  • Walrust’s alpha status is a problem for your use case
  • Written in Rust (async/await on tokio)
  • Uses the LTX file format (derived from Litestream, but not compatible with Litestream restores)
  • One shared S3 client with connection pooling; each database gets its own upload task for concurrency
  • ~8 MB binary