10P by xguru 2021-05-10 | favorite | 댓글 1개

- 백엔드 없는 스태틱 웹페이지에서 풀버전 SQLite DB 사용하는 방법
- SQLite를 emscripten 이용해서 WASM으로 컴파일하고 sql.js를 JS Wrapper로 사용
ㅤ→ sql.js는 메모리 기반이어서 HTTP Range 요청으로 DB를 읽어오도록 변경(httpvfs)
ㅤ→ 요청을 작게 하기 위해 page를 1 KiB로 설정(기본 4 KiB)
- DB가 브라우저 에서 실행되므로, DOM을 DB처럼 사용도 가능
- GitHub 외에 GitLab Pages, Netlify 등 어떤 스태틱 페이지에서도 가능

웹에서 돌릴 수 있는 SQL 데이터베이스 구현체로는 Rust로 작성된 GlueSQL도 있습니다. :)

GlueSQL - https://github.com/gluesql/gluesql
SQLite와 같이 임베디드 SQL 데이터베이스처럼 사용하는 것도 가능하구요.
새로운 SQL 데이터베이스를 만들기 위해 라이브러리 형태로 GlueSQL를 사용하는 것도 가능합니다. 이 경우 GlueSQL 에서 제공하는 몇 가지 스토리지 trait 만 구현하면 됩니다.

현재 기본 레퍼런스 스토리지 외에 몇 가지 사용 사례가 있습니다.

1. GlueSQL.js - https://github.com/gluesql/gluesql-js
WASM 으로 컴파일되어 웹에서 직접 돌릴 수 있는 SQL 데이터베이스 입니다.
현재는 3가지 서로 다른 스토리지를 지원하고 있습니다.
* 메모리
* HTML5 로컬스토리지
* HTML5 세션스토리지
(현재 조금 예전 버전의 GlueSQL을 사용하고 있긴 합니다.)

2. GlueSQL Sheets - https://sheets.gluesql.com
커스텀 스토리지에 어떤 것이든 붙일 수 있다는 장점을 살려서, GlueSQL Sheets는 구글 스프레드시트를 스토리지로 사용하는 SQL 데이터베이스 서비스 입니다.
제공하는 API를 통해 SQL을 실행하면, 모든 데이터는 해당되는 구글 스프레드시트에서 읽고, 쓰여집니다.