preswald:基于 Python 与 WASM 技术的静态数据应用生成器项目

Preswald is a WASM packager for Python-based interactive data apps: bundle full complex data workflows, particularly visualizations, into single files, runnable completely in-browser, using Pyodide, DuckDB, Pandas, and Plotly, Matplotlib, etc. Build dashboards, reports, and notebooks that run offline, load fast, and share like a document.

分支17Tags28
文件最后提交记录最后更新时间
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前

横幅

利用完整的在浏览器中运行的数据栈(无需本地依赖!),打造可离线运行且可单个文件共享的互动数据应用。

Apache 2.0 许可 Python 版本 Slack 社区 PyPI 版本

网站 文档 工作室 预约演示

Preswald 是什么?

Preswald 是一个静态站点生成器,用于在 Python 中构建互动数据应用。它将计算、数据访问和用户界面打包成可在浏览器本地运行的自包含数据应用。基于支持 Pyodide 和 DuckDB 的 WASM 运行时,Preswald 实现了便携、基于文件的快速响应式应用,便于共享。

你可以将 Preswald 视作一种更轻量级的替代传统重型 Web 应用平台。它提供了内置的用户界面组件和响应式状态跟踪功能,因此你可以用它构建响应迅速、便携且默认安全的数据看板、报告、原型、工作流和笔记本。

在以下情况下,Preswald 尤其有用:

  • 你希望将逻辑、界面和数据捆绑到可共享的文件中
  • 你需要发送一个工具给利益相关方,而不应要求他们安装任何东西
  • 你在处理敏感数据并希望完全本地控制
  • 你希望为 AI 系统提供结构化、可修改的工具

主要功能

  • 基于代码。用 Python 编写应用,而非笔记本或 JS 框架
  • 优先文件。一个命令即可创建一个完全封装的 .html 应用
  • 为计算而设计。直接在浏览器中使用 Pyodide + DuckDB
  • 可组合的 UI。使用表格、图表、表单等预建组件
  • 响应式引擎。仅重新运行所需内容,由依赖关系的 DAG 支持
  • 本地执行。无需服务器。即使是大数据也可以离线运行
  • AI 准备完毕。应用完全可被代理检查和修改
preswald export

此命令会将您的应用程序构建为一个静态网站,存放在 dist/ 目录中。该文件夹包含了在本地运行或分享您的应用程序所需的所有文件。

  • 在任何现代浏览器中均可离线运行
  • 打包您的 Python 代码(通过 Pyodide)、数据以及 DuckDB 查询
  • 保持应用程序的界面、逻辑和响应状态
  • 可以作为文件文件夹分享,或嵌入到托管平台中

安装

https://pypi.org/project/preswald/

pip install preswald

or 

uv pip install preswald

示例动图

快速入门

pip install preswald
preswald init my_app
cd my_app
preswald run

这将创建一个名为 my_app 的文件夹:

my_app/
├── hello.py           # Your app logic
├── preswald.toml      # App metadata and config
├── secrets.toml       # Secrets (e.g. API keys)
├── data/sample.csv    # Input data files
├── images/logo.png    # Custom branding

编辑 hello.py 文件以构建您的应用程序。

from preswald import text, table, get_df

text("# Hello Preswald")
df = get_df("sample.csv")
table(df)
...

现在本地运行您的应用程序,使用以下命令:

preswald run

这个命令用于启动开发服务器,Preswald 将会告诉你你的应用程序托管在何处。通常情况下,它的位置在这里:

🌐 App running at: http://localhost:8501

打开您的浏览器,瞧——您的第一个Preswald应用已经上线!

配置

Preswald 使用一个简单的 preswald.toml 文件进行配置。该文件定义了应用的元数据、运行时设置、界面品牌以及数据来源。以下是一个示例:

[project]
title = "Preswald Project"
version = "0.1.0"
port = 8501
slug = "preswald-project"
entrypoint = "hello.py"

[branding]
name = "Preswald Project"
logo = "images/logo.png"
favicon = "images/favicon.ico"
primaryColor = "#F89613"

[logging]
level = "INFO"  # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"

应用场景


📚 文档

我们在此提供帮助!查看完整的文档,请访问 Preswald 文档


🤝 参与贡献

查看 CONTRIBUTING.md


🎉 加入社区

  • GitHub Issues:发现了错误?在此告诉我们 这里
  • 社区论坛:联系 这里
  • 讨论区:在我们的 讨论论坛 分享您的想法和提问。
  • 贡献者:认识那些让 Preswald 变得更好的人 这里

📢 保持联系

在 LinkedIn 上关注我们 在 Twitter 上关注我们

📄 许可

Preswald 遵循 Apache 2.0 许可

✨ 贡献者

感谢所有为 Preswald 做出贡献的人 💜

项目介绍

Preswald 是一个用于构建和部署交互式数据应用、内部工具和仪表板的 Python 框架。通过一个命令,您即可启动、分享和本地或云端部署,将 Python 脚本转变为强大的可分享应用。【此简介由AI生成】

定制我的领域
84.28 K648访问 GitHub