DaruDB
アプリケーションのデータをローカルファイル一つに収める組み込みデータベースです。Rust で書かれたエンジン一つと、その上の Node.js バインディングで構成されています。まだ初期開発の段階で公開されたパッケージはなく、今はソースからビルドして使います。
このプロジェクトについて
DaruDB は、アプリケーションの横ではなく中で動くデータベースです。インストールしたり起動したりするサーバーはありません。プログラムがファイルを開き、その中のオブジェクトを読み書きし、閉じるだけです。デスクトップアプリ、モバイルアプリ、コマンドラインツールが自分のデータを置いておくのに向いた保存先です。エンジンは Rust で一度だけ書かれ、ほかの言語は振る舞いを足さない薄いバインディングを通じて同じエンジンに届きます。だから Node.js で書いたファイルは Rust からも同じように読めます。
データはコレクションのスキーマとして宣言し、コードで組み立てるかテキストで書いたクエリで読み出します。インデックス、オブジェクト間のリンク、スキーマのバージョン間のマイグレーションも備えています。結果は開いているデータベースに縛られたハンドルではなく、ただのオブジェクトです。ファイルは鍵かパスワードでページごとに暗号化・認証でき、複数のプロセスが OS のファイルロックだけで一つのファイルを共有します。コミット済みのページはその場で上書きされないので、途中でプロセスが落ちても最後にコミットした状態が残ります。整合性チェック、オンラインバックアップ、コンパクション、壊れたファイルの救出もライブラリに含まれています。
DaruDB はまだ初期開発の段階です。Rust のクレートと Node.js パッケージはインストールではなくソースからビルドして使い、最初のリリースまではファイル形式がマイグレーションなしに変わることがあり、Dart パッケージは計画中です。速度、耐久性、対応プラットフォームは設計が目指す目標で、それぞれを裏づけるベンチマークやテストがリポジトリに入ってはじめて主張として掲げます。ドキュメントサイトはガイド、エンジン、API を英語と韓国語で扱います。
機能
ドキュメントサイトあり
TypeScript 型定義
多言語対応
テストで検証済み
