Streamlitの代替として始まったPython Webフレームワーク「Violit」が大規模アップデート(ORM/Auth内蔵)
(github.com/violit-dev)こんにちは。
約3か月前、Streamlitの**フル再実行(Full Rerun)**のボトルネックを解消するために、趣味で作ったPython Webフレームワーク「Violit」をGeekNewsで紹介したEngineerです。
ありがたいことに、海外コミュニティやここGeekNewsで好意的なフィードバックをいただいたおかげで、最近GitHubスターが400を超えました。その間、知人やグローバルユーザーが実際のプロジェクトに私のフレームワークを適用していく過程を見守る中で、ひとつの事実に気づきました。
素早くUIを作り終えると、人はすぐにDB保存とログイン(Auth)機能を求めるということです。
当初はフレームワークを軽量に保つため、徹底してフロントエンドライブラリとしてだけ残すつもりでした。しかし、ユーザーがDBや認証システムを無理やりつなぎ合わせるのに苦労する姿を見て、悩んだ末にそれらの機能を追加することを決めました。
今回の大規模アップデートを通じて、Violitを単なるUIツールからBatteries-includedなフルスタックフレームワークへと拡張しました。
🚀 今回のアップデートの主なポイント
- 内蔵ORM(SQLModel):
vl.App(db="./app.db")を1行渡すだけで、別途セットアップなしにすぐクエリと保存が可能です。 - 内蔵Auth: セッションベース認証、パスワードハッシュ化、ページアクセス権限保護(Role-based)機能をネイティブでサポートします。
- 非同期バックグラウンド作業: 重いAI推論を回す際に画面が止まらないよう、
app.background()を使って作業を安全にバックグラウンドへ渡せます。 - Tailwind & Web Awesome:
clsパラメータを通じてTailwindユーティリティクラスをそのまま使い、モダンなスタイリングが可能になりました。
もちろん、土台となる**シグナルベースの細粒度リアクティビティ(Signal-based fine-grained reactivity)**エンジンもさらに堅牢になりました。Streamlitのように直感的なスクリプト形式(API 90%互換)でコードを書けますが、クリックや入力のたびに画面全体が再実行されるのではなく、依存関係のあるウィジェットだけが部分更新されます。
これで、Pythonスクリプト1本だけでモダンなリアクティブUIからデータベース、ユーザー認証まで一度に処理できます。
次回、社内ツールやデータアプリ、MVPを作る際にぜひ一度使ってみて、アーキテクチャについてのフィードバックやアドバイスをいただけるとうれしいです! :)
- GitHub : https://github.com/violit-dev/violit
- Homepage : https://violit.cloud/
- Docs : https://doc.violit.cloud
まだコメントはありません。