Preswald
Structured Labs · コーディング
Preswaldは、Pythonスクリプトをインタラクティブなデータアプリに変え、サーバーなしでブラウザで動く独立ファイルとしてまとめるオープンソースのフレームワークだ。

Preswald について
About
Preswaldとは
Preswaldは、インタラクティブなデータアプリのための静的サイトジェネレーターだ。Structured Labsが開発し、Apache 2.0ライセンスで公開している。アプリはPythonで書き、コマンド1つで静的ファイルのフォルダにビルドできる。それをブラウザで開いたり、そのまま人に渡したりできる。実行する側のマシンには何もインストールしなくていい。
狙っているのは受け渡しの問題だ。アナリストはnotebookでpandasとPlotlyの分析を組めるが、共有しようとすると相手にPython環境を用意してもらう必要が出てくる。Preswaldはコード、データ、UIを1つの持ち運べるパッケージにまとめ、オフラインで動かす。内部ではWebAssemblyに頼り、PythonはPyodide、クエリはDuckDBがブラウザのタブでそのまま動く。
この設計には先に知っておくべきトレードオフがある。すべてクライアント側で動くため、巨大なデータセットや重い計算は、開いた人のマシンとブラウザメモリの制約を受ける。プロジェクト自体も若く、グラフの再描画をめぐるコミュニティ報告の不具合は、まだ成熟途上であることを示している。公式サイトは現在Structured Labsへ転送され、同社は他の製品と並行してPreswaldを開発し続けている。
はじめ方
pip install preswaldまたはuv pip install preswaldでパッケージを入れる。preswald init my_appを実行し、アプリのファイル、設定、サンプルデータを含むひな形を生成する。- Pythonファイルを編集し、
text、table、get_dfなどのUI部品を読み込んでアプリを組み立てる。 preswald runでローカル開発サーバーを立ち上げ、localhostでアプリを確認する。preswald exportを実行し、オフラインで動く静的パッケージをdist/フォルダにビルドする。
AIツール情報
Preswaldの料金、対応プラットフォーム、性能を簡単に確認できます。
こんな人におすすめ
このツールが最も力を発揮するユーザー、タスク、シーン。
ユーザー
- データアナリスト:pandasやSQLの分析を、Webサーバーを立てずに共有できるダッシュボードに変える。データセットがブラウザのメモリに収まることが条件だ。
- Python開発者:すでに使っている言語で社内ツールを届ける。JavaScriptのフロントエンドフレームワークを新たに覚えなくていい。
- 他部署に成果を渡すデータチーム:相手が最新のブラウザを使っていれば、インストール不要で開ける独立ファイルを渡せる。
- プライバシーを重視するチーム:処理をローカルに置ける。アプリを動かすのにデータを外へ出す必要がない。
タスク
- アナリスト向けダッシュボードの構築:表とグラフを静的サイトにまとめ、利用者がフィルターを動かすと更新される。
- インタラクティブなレポートの作成:notebook的な分析を、選択やフィルターに反応する生きたページに変える。
- データ確認ツールの公開:ファイルやログ、スナップショットを調べる小さな専用UIを作る。
- オフライン用キットの梱包:ネットのない現場や隔離環境へ持っていくアプリをまとめる。
シーン
- 非技術者の同僚にツールを渡す:相手が開くのはファイルであってターミナルではない。環境設定は一切要らない。
- 機密データの扱い:計算をブラウザ内に留めれば、記録を第三者サーバーへ送らずに済む。
- データ製品の素早い試作:重いWeb基盤に踏み切る前に、午後ひとつで動くアプリを作れる。
- AIエージェントに構造化ツールを渡す:アプリは素直で検査可能なコードなので、エージェントが読んで書き換えられる。
主な機能
Python中心の開発
アプリはすべてPythonで書く。テキスト、表、グラフ、フォーム向けの補助関数がそろっている。JavaScriptを書く必要も、notebookの実行環境と格闘する必要もない。pandasに慣れている人なら、分析スクリプトから動くアプリまでの距離は短い。
ファイル単位の書き出し
preswald export の1コマンドで、アプリは dist/ フォルダ内の静的サイトにビルドされる。実行に必要なものはすべてそこに入る。圧縮しても、ホスティングしても、共有ドライブに置いてもいい。最新のブラウザならオフラインで動く。
PyodideとDuckDBによるブラウザ内計算
実行環境はPythonをPyodideで、クエリをDuckDBで処理し、どちらもWebAssemblyにコンパイルされている。実際のデータ処理はタブの中で起き、遠隔サーバーでは動かない。DuckDBはローカルファイルへの分析SQLを高速にさばく。これがブラウザ内の軽快なデータアプリを可能にしている。
リアクティブエンジン
Preswaldは状態の依存グラフを追い、変更の影響を受ける部分だけを再実行する。利用者がフィルターを動かすと、スクリプト全体ではなく関わる出力だけを計算し直す。これでインタラクティブなアプリが大きくなっても軽快さを保つ。
組み合わせ可能なUI部品
フレームワークには表、グラフ、フォーム、レイアウトといった部品が最初から入っている。スクリプトに置けば一貫したUIとして描画される。よくあるデータ表示のためにマークアップやスタイルを手書きせずに済む。
既定でローカル実行
アプリはまるごとブラウザで動くので、配備も保護も課金も必要なバックエンドはない。データはアプリを動かすマシンに残る。機密データやオフラインの現場作業に向く。同時に、扱えるデータ量と計算量を制限する要因でもある。
Apache 2.0のオープンソース
PreswaldはApache 2.0ライセンスで、GitHub上で公開開発されている。コードを読み、issueを立て、貢献もできる。Structured Labsが維持しており、SlackとGitHubディスカッションに活発なコミュニティがある。
メリットとデメリット
メリット
- アプリをPythonで書けるので、アナリストはフロントエンドの技術を覚えずに成果を共有できる。
- 出力は独立した静的パッケージで、ブラウザ上でオフライン動作し、配備するサーバーがない。
- DuckDBとPyodideが、本物のSQLとPython実行をブラウザのタブまで運んでくる。
- リアクティブな再計算により、インタラクティブなダッシュボードが大きくなっても軽快さを保つ。
- Apache 2.0ライセンスなのでベンダーロックインがなく、セルフホストも自由だ。
デメリット
- すべてクライアント側で動くため、データが大きい、計算が重いといった場合は、訪問者のマシンのメモリと速度の限界にぶつかる。
- 若いプロジェクトで、グラフ再描画をめぐるコミュニティ報告の不具合が示すとおり実行環境は成熟途上にあり、粗さが残る可能性がある。
- 文書化されたクラウドAPIはないので、マネージドなバックエンドを求めるチームは別を当たるか自前でホストする必要がある。
- ブラウザ経由で届けるため、最新ブラウザに依存し、スケジュール実行やヘッドレスのサーバージョブには向かない。
よくある質問
PreswaldはPythonでインタラクティブなデータアプリを作り、ブラウザで動く静的ファイルとしてまとめる。ダッシュボード、レポート、データ確認ツール、そしてPython環境の用意を頼まずに共有したい試作品に向く。
関連コンテンツ
Preswaldに関連するツール、スキル、記事を探す。
Preswaldの代替ツール
Forefront
Forefront · コーディングForefrontはオープンソースAIで構築するためのウェブプラットフォームだ。主要なオープンソース言語モデルを自分のデータで微調整し、性能を評価し、API経由で実行したり、エクスポートして自分でホストしたりできる。クローズドなプラットフォームの手軽さを求めつつ、モデルとデータの所有権にはこだわる開発者が対象だ。
Startkit
StartKit.AI · コーディングStartkitは、AI SaaSとAIラッパー製品を作るためのボイラープレートだ。面倒な部分をあらかじめ配線済みにしたAIスタートアップボイラープレートと考えればいい。認証、StripeとLemon Squeezyの決済、利用制限、トランザクションメール、そしてOpenAI、Anthropic、Groq、Llamaと通信するAI APIスターターキットが含まれる。リポジトリをクローンして価格を設定し、ユーザーが実際にお金を払う部分に取りかかれる。ReactとTailwind上のNext.jsで作られているため、ボイラープレートコードの多くはすでに見慣れたものだ。
Testim
Tricentis · コーディングTestimは、Web・モバイル・Salesforceアプリ向けにエンドツーエンドテストを構築して実行するAIテスト自動化プラットフォームだ。機械学習を頼りに、インターフェースが変わってもテストを安定させ、チームが壊れたセレクターの修正に費やす時間を減らす。今日から使い始められる自動テストツールとしては悪くない。ブラウザで操作を録画してテストを作り、より細かい制御が必要なときはJavaScriptを足す。忙しいQAチームにとって堅実な選択肢である。
