こんにちは。
tauri でデスクトップアプリケーションを作っているのですが、データストアをどうしようか悩みました。
結果として RocksDB を使ってみたのでメモ書きです。
データストアをどうするのか問題
(私はウェブアプリケーションばかり作ってきたので、初めて直面したのですが..)
デスクトップアプリケーションの場合、データストアの選択肢が限られます。
データストアの選択肢
大別すると次のようになるでしょうか。(他に手法があれば教えて欲しいです..)
- (a) ローカルにファイルとして保存する
- (b) 外部に保存する。データはHTTP経由でやりとり
よくコマンドラインツールが home dir (~) に設定ファイルを置いてますが、あれが (a) です。
また、SQLite のようなファイルベースのDBも (a) に含まれます。
tauri のアプリケーションで、データストアをどうするか
tauri では.. の話ですが、特別な制約はありません。要件によりますが tauri-plugin-store や tauri-plugin-sql のようなプラグインも使えるかと思います。
私の場合、趣味で作っているのでデータストアはなんでもよく、せっかくなので知らないDBを触ってみようと、RocksDB を採用してみました。
RocksDB とは
RocksDB は Key-Valueストア です。
(あまり詳しくないので説明は控えますが)
公式ドキュメントいわく embeddable persistent key-value store
とのことです。
雑に言うと「MySQL に対する SQLite」のような感覚で使えます。
実装
crate は rocksdb を用いました。
私は M1 Mac で開発しているのですが、rocksdb を依存に入れて tauri アプリをビルドすると、はじめ失敗しました。
tauri.conf.json の tauri.bundle.macOS.minimumSystemVersion を 13.0 に変えると上手くいきました。