deno-sqlite
#Deno #WebAssembly #SQLite
概要
deno-sqliteはWebAssemblyベースのDenoのSQLiteドライバーです。
使い方
インメモリデータベース(:memory:)の使用例:
code:typescript
import { DB } from "https://deno.land/x/sqlite@v2.4.0/mod.ts";
const db = new DB(":memory:");
db.query("CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");
db.query("INSERT INTO users (name, age) VALUES (?, ?)", "hoge", 20);
db.query("INSERT INTO users (name, age) VALUES (?, ?)", "piyo", 30);
for (const name, age of db.query("SELECT name, age FROM users")) {
console.log({ name, age });
}
db.close();
仕組み
SQLiteにはVFSという仕組みがあります。
http://www.sqlite.org/draft/vfs.html
deno-sqliteは独自のVFSを実装し、DenoのAPIを介してファイルシステムへの読み込み操作を実現しています。
WASI SDKを使い、SQLiteと上記のVFSをWASM形式へビルドしています。
リンク
Deno SQLite3 - こちらはFFIベース