- บิลด์ Postgres แบบ WASM ที่แพ็กมาเป็นไลบรารีไคลเอนต์ TypeScript เพื่อให้สามารถรัน Postgres ได้ในเบราว์เซอร์, Node.js และ Bun
- ไม่มี dependency อื่น และมีขนาด 3.7Mb หลังบีบอัดด้วย gzip
- ใช้เป็นฐานข้อมูล in-memory ชั่วคราวได้ หรือใช้งานแบบถาวรบนไฟล์ซิสเต็ม (Node/Bun) หรือ IndexedDB (เบราว์เซอร์) ได้
- แตกต่างจาก Postgres ที่รันบนเบราว์เซอร์ตัวอื่น ๆ ตรงที่นี่เป็น "Postgres in WASM" ที่ไม่ใช้ Linux virtual machine
import { PGlite } from "@electric-sql/pglite"
const db = new PGlite()
await db.query("select 'Hello world' as message;")
// -> [ { message: "Hello world" } ]
3 ความคิดเห็น
ผมใช้งานสิ่งนี้ได้อย่างมีประโยชน์มากเวลาที่เขียนโค้ดทดสอบ สะดวกต่อการทดสอบบน CI ด้วย
แบบเดียวกับการใช้ sqlite ในแอปมือถือ ก็น่าจะใช้เก็บสิ่งที่ไม่จำเป็นต้องซิงก์กับฐานข้อมูลระยะไกลได้สินะครับ อาจใช้แทน global state store อย่าง redux ได้เลยหรือเปล่า?!
ก็แอบสงสัยว่า จำเป็นต้องถึงขั้นมาเรียนรู้คำสั่ง SQL ฝั่งฟรอนต์เอนด์เพื่อใช้แทนกันไหม แต่ก็น่าสนุกดีนะ เห็นว่ามีแพ็กเกจ
pglite-reactอยู่ด้วยเหมือนกัน