10 คะแนน โดย xguru 2021-05-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • วิธีใช้งานฐานข้อมูล SQLite แบบเต็มรูปแบบบนเว็บเพจสแตติกที่ไม่มีแบ็กเอนด์

  • คอมไพล์ SQLite เป็น WASM ด้วย emscripten และใช้ sql.js เป็น JS wrapper

→ sql.js ทำงานบนหน่วยความจำ จึงปรับให้สามารถอ่านฐานข้อมูลผ่านคำขอ HTTP Range ได้ (httpvfs)

→ เพื่อลดขนาดคำขอ จึงตั้งค่า page เป็น 1 KiB (ค่าเริ่มต้น 4 KiB)

  • เนื่องจากฐานข้อมูลทำงานอยู่ในเบราว์เซอร์ จึงสามารถใช้ DOM เสมือนเป็นฐานข้อมูลได้ด้วย

  • นอกจาก GitHub แล้ว ยังใช้ได้กับหน้าเว็บสแตติกใด ๆ เช่น GitLab Pages, Netlify เป็นต้น

1 ความคิดเห็น

 
panarch 2021-05-10

อีกหนึ่งอิมพลีเมนเตชันของฐานข้อมูล SQL ที่รันบนเว็บได้คือ GlueSQL ซึ่งเขียนด้วย Rust ครับ :)

GlueSQL - https://github.com/gluesql/gluesql

มันสามารถใช้งานได้ในลักษณะเดียวกับฐานข้อมูล SQL แบบฝังตัวอย่าง SQLite

และยังสามารถใช้ GlueSQL ในรูปแบบไลบรารีเพื่อสร้างฐานข้อมูล SQL ตัวใหม่ได้ด้วย ในกรณีนี้เพียงแค่ต้องอิมพลีเมนต์ storage trait บางตัวที่ GlueSQL มีให้เท่านั้น

ตอนนี้นอกจาก reference storage พื้นฐานแล้ว ก็ยังมีตัวอย่างการใช้งานอยู่หลายแบบ

  1. GlueSQL.js - https://github.com/gluesql/gluesql-js

เป็นฐานข้อมูล SQL ที่คอมไพล์เป็น WASM จึงสามารถรันได้โดยตรงบนเว็บ

ปัจจุบันรองรับสตอเรจที่แตกต่างกัน 3 แบบ

  • หน่วยความจำ

  • HTML5 localStorage

  • HTML5 sessionStorage

(ตอนนี้ยังใช้ GlueSQL เวอร์ชันที่ค่อนข้างเก่าอยู่นิดหน่อย)

  1. GlueSQL Sheets - https://sheets.gluesql.com

ด้วยข้อดีที่สามารถเชื่อมต่อ custom storage ได้แทบทุกอย่าง GlueSQL Sheets จึงเป็นบริการฐานข้อมูล SQL ที่ใช้ Google Spreadsheets เป็นสตอเรจ

เมื่อรัน SQL ผ่าน API ที่ให้มา ข้อมูลทั้งหมดจะถูกอ่านและเขียนลงใน Google Spreadsheets ที่เกี่ยวข้อง