replited - เครื่องมือสำหรับทำสำเนา SQLite ไปยังที่ใดก็ได้ เช่น S3, FTP, WebDAV (Rust + OpenDAL)
(github.com/mrchypark)สวัสดีครับ ขอแนะนำ replited เครื่องมือทำสำเนา SQLite ที่เขียนด้วย Rust
มันถูกสร้างขึ้นมาเพื่อแก้ปัญหาใหญ่ที่สุดเวลาใช้ SQLite ในสภาพแวดล้อมแบบ serverless หรือ edge นั่นคือปัญหา "การป้องกันข้อมูลสูญหาย" และ "การสำรองข้อมูล" แม้ว่าจะมีเครื่องมือที่ยอดเยี่ยมอยู่แล้วอย่าง Litestream แต่ด้วยความต้องการที่จะใช้งาน read replica ผ่านการคัดลอกแบบสตรีมมิง จึงได้ลองเพิ่มฟีเจอร์เข้าไปบนผลงานที่ผู้อื่นสร้างไว้
replited เลือกใช้ Apache OpenDAL เพื่อทำ abstraction ของ storage layer ด้วยเหตุนี้ จึงไม่ใช่แค่ S3 เท่านั้น แต่ยังสามารถทำสำเนา WAL (Write-Ahead Log) ของ SQLite แบบเรียลไทม์ไปยัง storage แทบทุกประเภทที่ OpenDAL รองรับ เช่น FTP, WebDAV, Google Drive, Dropbox, IPFS เป็นต้น
คุณสมบัติหลัก:
- สร้างบน Rust & OpenDAL: รับประกัน memory safety และทำงานได้เบาด้วยไบนารีไฟล์เดียว
- รองรับแบ็กเอนด์หลากหลาย: ตั้งแต่ cloud storage อย่าง AWS S3, GCS, Azure Blob ไปจนถึง FTP/SFTP และ WebDAV ทั่วไป
- ทำสำเนาแบบเรียลไทม์: คล้าย Litestream โดยจับ WAL frame เพื่อให้บรรลุเป้าหมาย RPO (Recovery Point Objective) ระดับไม่กี่วินาที
- ตั้งค่าง่าย: สามารถระบุแบ็กเอนด์ได้ผ่านตัวแปรสภาพแวดล้อมหรือไฟล์คอนฟิก โดยไม่ต้องมีการตั้งค่าที่ซับซ้อน
หวังว่าจะเป็นประโยชน์สำหรับผู้ที่อยากลดต้นทุนการดูแล RDBMS ในโปรเจกต์ส่วนตัวหรือโปรดักชันขนาดเล็ก พร้อมกับยังคงรักษาความปลอดภัยของข้อมูลไว้ได้
GitHub repository:
https://github.com/mrchypark/replited
ยังไม่มีความคิดเห็น