- Limboは、メモリ安全性を提供するRustでSQLiteを再実装する実験的プロジェクト
- SQLiteの組み込み特性を気に入っていたが、よりオープンな開発モデルを求めてlibSQLプロジェクトを開始
- SQLiteをフォークした理由: 新機能を容易に統合でき、既存コードとの互換性も維持できるため
- 欠点: SQLiteのテストスイートは独占的でCで書かれており、コードの進化が難しい
- 新しいアプローチ
- ベクトル検索機能の追加を通じてSQLiteの限界を経験
- SQLiteを一から書き直し、互換性を維持しつつ、より積極的な機能追加の可能性を探る
- 次のステップ
- Limboを公式のTursoプロジェクトへ移行
- SQLiteと同等の信頼性を保ちながら、メモリ安全性を提供する新しいアーキテクチャの構築を目指す
- SQLiteの信頼性への挑戦
- 決定論的シミュレーションテスト(DST)により高い信頼性を確保
- Antithesisと協力し、システムレベルのDSTフレームワークを使用
- 現在の状況
- 完全非同期I/O: Limboは完全非同期設計で、SQLiteの同期インターフェースの問題を解決
- WASM向けの設計: WASM環境での利用を考慮した設計
- 性能: 多くの作業でSQLiteと同等かそれ以上の性能
- シンプルさ: 現代環境では重要性の低い機能を削除し、より良いユーザー体験を提供
- 追加情報
- LimboはMITライセンスでGitHub上に公開
- SQLiteの約束を次の段階へ発展させたい、組み込みデータベースの構築に関心のある人々を招待している
4件のコメント
自分が貢献していたプロジェクトが Hacker News に載るなんて、不思議な感じですね(笑)
Hacker Newsのコメント
SQLiteは、コード品質と厳格なテストのため、書き直す必要のないプロジェクトに見える
SQLiteが「オープンな貢献」ではないという議論は、貢献を受け付けることが常にその貢献を受け入れることを意味するわけではない、という点を見落としている
SQLite3からLibSQLへのフォークの初期発表については否定的だった
最大性能のためにはWALモードを選ぶべきで、POSIXアドバイザリロックを無効化すべきだ
wal2モードがこのプロジェクトの検討対象に入っているのか気になる、という意見があるSQLiteのテストスイートがプロプライエタリだという事実を初めて知った、という意見がある
「async IO」セクションの論理は受け入れられない
まだ初期段階のプロジェクトだ、という意見がある
Fil-Cでコンパイルすれば、メモリ安全なSQLiteを得られる
SQLiteは約156,000行のコードと92,000行のテストコードで構成されている
Rust版のDO-178B認証は考慮されていないだろう、との推測がある
「Limbo」という名前は、AT&TのInfernoオペレーティングシステム向けのポストC/UNIX言語でも使われている
SQLiteは、コード品質と厳格なテストによって、書き直す必要のないプロジェクトに見える -> SQLiteに対するこうした評価は本当にうらやましく、素晴らしいですね。
DO-178Bプロセスに従っており、MC/DCコードカバレッジ100%を達成したとのことです。
SQLiteの知られざる物語