Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lichuang/replited
Replicate SQLite to every where(S3\ftp\webdav\google drive\dropbox,etc)
https://github.com/lichuang/replited
azure-storage backup database ftp gcs replication restore rust s3 sql sqlite sqlite3 storage
Last synced: 20 days ago
JSON representation
Replicate SQLite to every where(S3\ftp\webdav\google drive\dropbox,etc)
- Host: GitHub
- URL: https://github.com/lichuang/replited
- Owner: lichuang
- License: lgpl-2.1
- Created: 2024-06-22T08:21:26.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-05T13:43:03.000Z (about 1 month ago)
- Last Synced: 2024-11-05T14:44:22.346Z (about 1 month ago)
- Topics: azure-storage, backup, database, ftp, gcs, replication, restore, rust, s3, sql, sqlite, sqlite3, storage
- Language: Rust
- Homepage:
- Size: 198 KB
- Stars: 215
- Watchers: 6
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-sqlite - lichuang/replited: Replica SQLite to every where(S3\ftp\webdav\google drive\dropbox,etc)
README
# replited(Replicate SQLITE Daemon)
[![GitHub stars](https://img.shields.io/github/stars/lichuang/replited?label=Stars&logo=github)](https://github.com/lichuang/replited)
[![GitHub forks](https://img.shields.io/github/forks/lichuang/replited?label=Forks&logo=github)](https://github.com/lichuang/replited)- [Introduction](#introduction)
- [Why replited](#why-replited)
- [Support Backend](#support-backend)
- [Quick Start](#quick-start)
- [Config](#config)
- [Sub commands](#sub-commands)
- [Replicate](#replicate)
- [Restore](#restore)
## Introduction
Inspired by [Litestream](https://litestream.io/), with the power of [Rust](https://www.rust-lang.org/) and [OpenDAL](https://opendal.apache.org/), replited target to replicate sqlite to everywhere(file system,s3,ftp,google drive,dropbox,etc).
## Why replited
* Using sqlite's [WAL](https://sqlite.org/wal.html) mechanism, instead of backing up full data every time, do incremental backup of data to reduce the amount of synchronised data;
* Support for multiple types of storage backends,such as s3,gcs,ftp,local file system,etc.## Support Backend
| Type | Services |
| -------------------------- | ------------------------------------------------------------ |
| Standard Storage Protocols | ftp![CI](https://github.com/lichuang/replited/actions/workflows/ftp_integration_test.yml/badge.svg) |
| Object Storage Services | [azblob] [gcs]
[s3]![CI](https://github.com/lichuang/replited/actions/workflows/s3_integration_test.yml/badge.svg) |
| File Storage Services | fs![CI](https://github.com/lichuang/replited/actions/workflows/fs_integration_test.yml/badge.svg) |[azblob]: https://azure.microsoft.com/en-us/services/storage/blobs/
[gcs]: https://cloud.google.com/storage
[s3]: https://aws.amazon.com/s3/## Quick Start
Start a daemon to replicate sqlite:
```shell
replited --config {config file} replicate
```Restore sqlite from backend:
```shell
replited --config {config file} restore --db {db in config file} --output {output sqlite db file path}
```## Config
See [config.md](./config.md)
## Sub commands
### Replicate
`repicate` sub command will run a background process to replicate db to replicates in config periodically, example:
```
replited --config ./etc/sample.toml replicate
```### Restore
`restore` sub command will restore db from replicates in config, example:
```
replited --config ./etc/sample.toml restore --db /Users/codedump/local/sqlite/test.db --output ./test.db
```command options:
* `db`: which db will be restore from config
* `output`: which path will restored db saved## Stargazers over time
[![Stargazers over time](https://starchart.cc/lichuang/replited.svg?variant=adaptive)](https://starchart.cc/lichuang/replited)