Web開発
Show HN: Capsule – データをSQLiteに保存する単一ファイルWebアプリ
Show HN: Capsule – Single-file web apps that save their data into SQLite (withcapsule.app)
要約
Capsuleは、HTMLアプリとそのデータを単一のSQLiteファイルにパッケージ化できるRust製Tauriアプリです。HTMLファイルやアセットはデータベースに直接埋め込まれ、ユーザーデータはlocalStorageまたはMongoDBライクなAPIで保存されます。プライバシーとセキュリティを重視し、ファイルシステムへの直接アクセスやインターネットアクセスには許可が必要です。ローカルまたはリモートのAIモデルも利用可能です。
全文翻訳
皆さん、こんにちは。
HTMLページを構築するのは非常に簡単になりましたが、データを保存するにはどこかにホスティングする必要があり、後で共有するのが容易ではありませんでした。この数ヶ月間、私はCapsule(ファイル拡張子名でもあります)というアプリを開発してきました。これはRustとTauri 2.0で書かれており、HTMLアプリとそのデータを単一のSQLiteファイルにパッケージ化できます。
HTMLファイルと関連するアセットはデータベースに直接埋め込まれます。ユーザーデータは、localStorageのキー/バリューペアとして保存するか、MongoDBにインスパイアされたコレクションAPIを使用してドキュメントとして保存し、ファイル内のテーブルに保存できます。PDFファイルや画像などの他のアセットもデータベースに直接保存して、異なるドキュメントをまとめておくことができます。必要に応じて、すべてのデータをCSVまたはJSONに簡単にエクスポートできます。
プライバシーとセキュリティは私にとって大きな優先事項だったので、ドキュメントはデフォルトでは何もできません。ファイルシステムへの直接アクセス権はなく、インターネットにアクセスするには許可が必要です。パーミッションモデルはまだ改善に取り組んでいるところです。Capsuleドキュメントは、ドキュメント固有のAI機能のためにローカルまたはリモートのAIモデルを使用することもできます。
このアプローチの1つの欠点は、複数人が同時に作業すると異なるコピーが作成されることです。同じファイルの異なるコピーをマージできるようにするために、各データエントリには一意のUUIDとタイムスタンプが付与されています。
私は1.0バージョンのアプリのファイルフォーマット仕様を公開する予定なので、他のアプリもCapsuleファイルを読み書きできるようになります。このアプローチが意味をなすと思われるユースケースや、うまくいかない点があれば、ぜひお知らせください。
Webプレビュー(https://withcapsule.app/preview)で、事前に構築されたテンプレートを試すことができます。または、以下のプロンプトを使用して、Capsuleに最適化されたカスタムアプリを作成するために、お好みのAIプロバイダーを使用することもできます。
「アプリウィザードの指示をhttps://withcapsule.app/prompt.txtで読み、アプリのデザインを手伝ってください。」
私はまだファイルフォーマットに取り組んでいますが、新しいバージョンごとにマイグレーションがあるため、将来的に新しいバージョンのアプリを使用する際にデータが失われることはありません。このアプローチが意味をなすと思われるユースケースや、うまくいかない点があれば、ぜひお知らせください。