turso について
libSQL を基盤とする SQLite 互換データベース Turso の利用ガイドです。アプリ、AI エージェント、エッジ用途を対象に、組み込み・クラウド・ハイブリッド構成や暗号化、認可、同期を扱います。
主な機能
- 01SQLite 互換の組み込みデータベース
- 02クラウド・ハイブリッド同期
- 03AEGIS-256 と AES-GCM による暗号化
- 04認可の利用ガイド
- 05エージェント向けデータベースのパターン
活用シーン
- 01AI エージェントのローカル状態管理
- 02オフライン優先アプリの構築
- 03ローカルデータベースと Turso Cloud の同期
- 04エッジ用途での暗号化データベース利用
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ itechmeat/ llm-code --skill tursoインストール後、Claude Code で/tursoを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/agents.mdauth.mdencryption.mdinstallation.mdquickstart.mdsync.md詳細
Turso Database
最新のアプリケーション、AI エージェント、エッジコンピューティング向けの SQLite 互換組み込みデータベースです。
リンク
クイックナビゲーション
| トピック | リファレンス |
|---|---|
| インストール | installation.md |
| 暗号化 | encryption.md |
| 認可 | auth.md |
| 同期 | sync.md |
| エージェント DB | agents.md |
使用する場面
- クラウド同期機能を備えた組み込み SQLite データベース
- AI エージェントの状態管理とマルチエージェント間の連携
- オフラインファーストのアプリケーション
- 暗号化データベース(AEGIS、AES-GCM)
- エッジコンピューティングと IoT デバイス
主な概念
libSQL
Turso は、以下の機能を備えた SQLite のオープンソースフォークである libSQL を基盤としています。
- ネイティブ暗号化(AEGIS-256、AES-GCM)
- 非同期 I/O(Linux io_uring)
- クラウド同期機能
デプロイ方法
- 組み込み — アプリ内でローカルに実行します
- Turso Cloud — ブランチ機能とバックアップを備えたマネージドプラットフォームです
- ハイブリッド — クラウド同期(プッシュ/プル)を備えたローカル構成です
よくあるパターン
暗号化データベース
openssl rand -hex 32 # Generate key
tursodb --experimental-encryption "file:db.db?cipher=aegis256&hexkey=YOUR_KEY"
クラウド同期
import { connect } from "@tursodatabase/sync";
const db = await connect({
path: "./local.db",
url: "turso://...", // also accepts "libsql://..." — both schemes work
authToken: process.env.TURSO_AUTH_TOKEN,
});
await db.push(); // local → cloud
await db.pull(); // cloud → local
エージェントデータベース
import { connect } from "@tursodatabase/database";
// Local-first
const db = await connect("agent.db");
// Or with sync
const db = await connect({
path: "agent.db",
url: "https://db.turso.io",
authToken: "...",
sync: "full",
});
バージョン
製品バージョン:0.7.2
リリースノート
0.7.1 – 0.7.2
- JS/サーバーレス SDK:
transactionAsync()は、新しいクロージャーセーフなトランザクション API です。transaction()は非推奨になりました。トランザクションを並行実行できる場合、クロージャーのセマンティクスは不適切です。外側のdb/connインスタンスを介して取得したステートメントが、順不同でスケジュールされる可能性があるためです。トランザクションのコールバックでは、外側のインスタンスをクロージャーに取り込むのではなく、transactionAsync()に渡されるtxnハンドルを使うように移行してください(references/agents.mdを参照)。 - 破壊的変更:
Connection.execute()は、サーバーレスドライバーのネイティブミラーリング API(connect())から削除されました。これにより、@tursodatabase/databaseと同じ API となり、代わりにrun/get/all/iterate/exec/batch/transaction(Async)を提供します。libsql 互換のcreateClient()レイヤーは独自のexecute()を引き続き提供するため、影響を受けません(references/auth.mdを参照)。 - 制約エラーが発生した後もサーバー側の書き込みトランザクションが開いたままになることがある、
execute()/batch()後の古いinTransactionフラグを修正しました。 - クエリオプション引数の末尾で渡すクエリ単位の
requestHeadersにより、接続レベルだけでなく、単一の呼び出しにカスタムヘッダー(リクエスト識別ヘッダーなど)を付与できるようになりました。 - 同期エンジン:リモートのプルプロトコル(ページベースの WAL または MVCC 論理ログ)は、初回接続時に自動検出されるようになりました。そのため、従来の
logical_mvcc_pullフラグは必須ではなく、任意の手動設定になりました。WAL モードのローカルレプリカが MVCC リモートと同期すると、インプレースで自動的に MVCC ジャーナルモードへ変換されます。 - 同期バインディング(Rust、Python、JavaScript、Go、React Native)では、
turso://とlibsql://のリモート URL を相互に使用できます。 - コアの修正:
IN (...)リストのクエリコスト回帰によりInSeekがフルスキャンへ劣化する問題、制約チェック前のインデックス変更によりUPSERT後にインデックスが欠落する問題、MVCC 下のシーケンスによる変更数の漏れ、複合主キーまたは非 rowid 主キーを持つテーブルにおける DELETE/upsert のリプレイ不具合を修正しました。
0.7.0
- SQL サーフェス:PostgreSQL 互換のエイリアスを備えた SQL 標準のスカラー関数、PostgreSQL 形式のシーケンス、MVCC セーフな
AUTOINCREMENT、ウィンドウ関数関連の対応(VDBE の集約処理を利用したrow_number()、ウィンドウ句でのFILTER)、およびWITHIN GROUP順序集合集約関数。 - MVCC/耐久性:MVCC のパッシブチェックポイント、Turso 同期用のポータブルな論理ログメタデータ、および Aristo WAL 検証。
- 照合順序:コアのカスタム照合順序のサポート、およびロケール対応の照合順序。
- .NET/プラットフォーム:NativeAOT 静的リンク、リモートトランザクションとバッチ、Turso EF Core SQLite プロバイダー、NuGet のネイティブターゲット、および Windows ARM64 CLI リリース。
以前のバージョン(0.6.0)
JS/サーバーレスのタイムアウト、インタラクティブトランザクション、Python SQLAlchemy の改善(sqlalchemy-libsql)、npm ベースの CLI 配布、ローカルファースト/エージェントのワークロード向けに拡張された SQL サーフェスは、引き続き有効です。references/agents.md と references/installation.md を参照してください。
コメント
Markdown 対応