안녕하세요. Rust로 작성된 SQLite 복제 도구 replited를 소개합니다.

서버리스나 엣지 환경에서 SQLite를 사용할 때 가장 큰 고민인 "데이터 유실 방지"와 "백업" 문제를 해결하기 위해 만들었습니다. 기존에 훌륭한 도구인 Litestream이 있지만, 스트리밍 복사를 이용한 read replica를 운영하는 욕심에 다른 분이 만든 것에 기능을 추가해 봤습니다.

replited는 Apache OpenDAL을 채택하여 스토리지 계층을 추상화했습니다. 덕분에 S3뿐만 아니라 FTP, WebDAV, Google Drive, Dropbox, IPFS 등 OpenDAL이 지원하는 거의 모든 스토리지로 SQLite의 WAL(Write-Ahead Log)을 실시간 복제할 수 있습니다.

주요 특징:

  • Rust & OpenDAL 기반: 메모리 안전성을 보장하며, 단일 바이너리로 가볍게 동작합니다.
  • 다양한 백엔드 지원: AWS S3, GCS, Azure Blob 같은 클라우드 스토리지부터 일반적인 FTP/SFTP, WebDAV까지 지원합니다.
  • 실시간 복제: Litestream과 유사하게 WAL 프레임을 캡처하여 초 단위의 복구 시점 목표(RPO)를 달성합니다.
  • 간편한 설정: 복잡한 설정 없이 환경 변수나 설정 파일로 백엔드를 지정할 수 있습니다.

사이드 프로젝트나 소규모 프로덕션에서 RDBMS 운영 비용을 줄이면서도 데이터 안전성을 확보하고 싶은 분들에게 도움이 되길 바랍니다.

GitHub 저장소:
https://github.com/mrchypark/replited