🗄️

Turso ✕ Flutterを試してみる

に公開

1. Turso

なんか無料のRDBないかな〜(わがまま)と探していたら、そのわがままに付き合ってくれそうなサービスがTursoでした。

https://turso.tech/

RDBを持ちながら、無料枠で下記のような機能を持っていて、良すぎるほどでした。

  • 9GBのストレージ
  • 500個のデータベース
  • 1億回/月の読み取り
  • 2500万回/月の書き込み

上記は、2025年5月現在の情報です。

RDBと言っても、中身はPostgreSQLでも、MySQLでもなく、SQLite(正確にはLibSQL) ですが、パフォーマンスも十分に出るらしいです。ちょっとしたアプリが組めればいいなと思っていたので、問題ないです。

2. with Flutter

Flutterと連携した使い方は、下記の公式を参照。
Flutter(Dart)だけでなく、いろんな言語をサポートしてるのは良いですね。Flutter(Dart)だけ、OfficialじゃなくCommunityになってるのは気になる・・。

https://docs.turso.tech/sdk/flutter/quickstart

2.1. QuickStartでちょっと詰まったところ

QuickStart通りにやったんですが、いくつか詰まったところがあるので、下記にまとめます。
そのうち、改善するやつもあるかも。

ちなみに試している環境は、MacとAndroidの組み合わせです。

エラー1: "liblibsql_dart.so" not found

Invalid argument(s): Failed to load dynamic library 'liblibsql_dart.so': dlopen failed: library "liblibsql_dart.so" not found

なぜかわかりませんが、liblibsql_dart.so がないと怒られます。
Flutter界隈では困ったら以下のコマンドを打つことが決まっています(知らんけど)。

$ flutter clean

エラー2: rustup not found in PATH.

SEVERE: ================================================================================
SEVERE: Cargokit BuildTool failed with error:
SEVERE: --------------------------------------------------------------------------------
SEVERE:  
SEVERE: rustup not found in PATH.
SEVERE:  
SEVERE: Maybe you need to install Rust? It only takes a minute:
SEVERE:  
SEVERE: $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
SEVERE:  
SEVERE: ================================================================================

Rustをインストールしろと怒られます。大人しく、書かれているコマンドを打ちましょう。

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

3. メモアプリを作ってみた

簡単に1行ぐらいのメモを残せるアプリを作ってみました。Tursoに対して、参照、書き込み、削除がしっかりできていました!🎉
バックエンドの準備も必要なく、簡単にアクセスできるのが良いですね。SQLをベタに書いている点については、セキュリティ的に注意が必要です。


アプリ画面


Tursoの画面(ブラウザ)

上記のアプリをサンプルとして、下記に公開してますので、興味あれば試してみてください。README通りやれば、多分動くと思います。

https://github.com/ponwink/turso_example

4. 感想

商用で使う分には、なんとも言えないところはありますが、個人でちょっとしたアプリを作るのには十分な気はします。SQLiteを使ったサービスがもっとあってもいいと思うんですが、どうなんでしょう(自分が知らないだけかも)。

Discussion