3 ポイント 投稿者 dopeflamingo 29 일 전 | まだコメントはありません。 | WhatsAppで共有

こんにちは。

約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を作る際にぜひ一度使ってみて、アーキテクチャについてのフィードバックやアドバイスをいただけるとうれしいです! :)

まだコメントはありません。

まだコメントはありません。