-
วิธีใช้งานฐานข้อมูล SQLite แบบเต็มรูปแบบบนเว็บเพจสแตติกที่ไม่มีแบ็กเอนด์
-
คอมไพล์ SQLite เป็น WASM ด้วย emscripten และใช้ sql.js เป็น JS wrapper
→ sql.js ทำงานบนหน่วยความจำ จึงปรับให้สามารถอ่านฐานข้อมูลผ่านคำขอ HTTP Range ได้ (httpvfs)
→ เพื่อลดขนาดคำขอ จึงตั้งค่า page เป็น 1 KiB (ค่าเริ่มต้น 4 KiB)
-
เนื่องจากฐานข้อมูลทำงานอยู่ในเบราว์เซอร์ จึงสามารถใช้ DOM เสมือนเป็นฐานข้อมูลได้ด้วย
-
นอกจาก GitHub แล้ว ยังใช้ได้กับหน้าเว็บสแตติกใด ๆ เช่น GitLab Pages, Netlify เป็นต้น
1 ความคิดเห็น
อีกหนึ่งอิมพลีเมนเตชันของฐานข้อมูล SQL ที่รันบนเว็บได้คือ GlueSQL ซึ่งเขียนด้วย Rust ครับ :)
GlueSQL - https://github.com/gluesql/gluesql
มันสามารถใช้งานได้ในลักษณะเดียวกับฐานข้อมูล SQL แบบฝังตัวอย่าง SQLite
และยังสามารถใช้ GlueSQL ในรูปแบบไลบรารีเพื่อสร้างฐานข้อมูล SQL ตัวใหม่ได้ด้วย ในกรณีนี้เพียงแค่ต้องอิมพลีเมนต์ storage trait บางตัวที่ GlueSQL มีให้เท่านั้น
ตอนนี้นอกจาก reference storage พื้นฐานแล้ว ก็ยังมีตัวอย่างการใช้งานอยู่หลายแบบ
เป็นฐานข้อมูล SQL ที่คอมไพล์เป็น WASM จึงสามารถรันได้โดยตรงบนเว็บ
ปัจจุบันรองรับสตอเรจที่แตกต่างกัน 3 แบบ
หน่วยความจำ
HTML5 localStorage
HTML5 sessionStorage
(ตอนนี้ยังใช้ GlueSQL เวอร์ชันที่ค่อนข้างเก่าอยู่นิดหน่อย)
ด้วยข้อดีที่สามารถเชื่อมต่อ custom storage ได้แทบทุกอย่าง GlueSQL Sheets จึงเป็นบริการฐานข้อมูล SQL ที่ใช้ Google Spreadsheets เป็นสตอเรจ
เมื่อรัน SQL ผ่าน API ที่ให้มา ข้อมูลทั้งหมดจะถูกอ่านและเขียนลงใน Google Spreadsheets ที่เกี่ยวข้อง