devlog

tauri でデータストアに RocksDB を用いた話

2023-05-06

こんにちは。

tauri でデスクトップアプリケーションを作っているのですが、データストアをどうしようか悩みました。

結果として RocksDB を使ってみたのでメモ書きです。

データストアをどうするのか問題

(私はウェブアプリケーションばかり作ってきたので、初めて直面したのですが..)
デスクトップアプリケーションの場合、データストアの選択肢が限られます。

データストアの選択肢

大別すると次のようになるでしょうか。(他に手法があれば教えて欲しいです..)

  • (a) ローカルにファイルとして保存する
  • (b) 外部に保存する。データはHTTP経由でやりとり

よくコマンドラインツールが home dir (~) に設定ファイルを置いてますが、あれが (a) です。
また、SQLite のようなファイルベースのDBも (a) に含まれます。

tauri のアプリケーションで、データストアをどうするか

tauri では.. の話ですが、特別な制約はありません。要件によりますが tauri-plugin-storetauri-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 に変えると上手くいきました。

  • 作成日
    2023-05-06
  • 更新日
    2023-05-06