dylan-sutton-chavez/edge-python

GitHub: dylan-sutton-chavez/edge-python

Edge Python 是一个沙箱化的 Python 子集编译器与栈式虚拟机,可编译为约 200 KB 的 WebAssembly 模块在浏览器中安全运行。

Stars: 244 | Forks: 12

Edge Python Logo

针对沙箱化 Python 子集的单遍 SSA 字节码编译器和线程代码栈式虚拟机:采用 NaN-boxed 值、内联缓存、超级指令融合、纯函数记忆化以及标记-清除 GC。支持覆盖率引导的模糊测试;可作为 WebAssembly 模块在浏览器中运行。 - 默认安全。除非由[宿主](https://edgepython.com/reference/packages#host-libraries)明确启用,否则没有文件、网络或环境访问权限。 - 约 200 KB 占用空间。完整的编译器和运行时打包为单个 WASM 二进制文件。 - 编译时导入。每个模块都在解析时解析,没有动态加载,没有运行时意外。 - 无 AST。源码在单遍中直接编译为字节码:O(n)。 ## 了解更多 - 文档(直接在浏览器中体验 Edge Python):[edgepython.com](https://edgepython.com/) ## 仓库结构 Cargo workspace;命令可在任意目录下运行。 ``` ├── cli ├── compiler ├── docs ├── host ├── runtime ├── std ├── target ├── wasm-abi └── wasm-pdk ``` ``` cargo wasm # release .wasm (the distributed artifact) cargo build --release # host .rlib + cdylib for Rust embedders cargo test --release --no-default-features # run the compiler test suite ``` *`--no-default-features` 会禁用 `prebuilt` 特性,否则该特性会触发 `build.rs` 从 GitHub release 下载 `compiler.wasm`:该下载仅适用于消耗此库的外部 Rust crate,而在本地开发时则不需要。* 原生模块通过三种交付路径提供(CDN `.wasm`、宿主能力、JS 宿主模块),参见[编写模块](https://edgepython.com/reference/writing-modules)。 ## 快速开始 ### CLI 下载到你的机器([参考文档](https://edgepython.com/reference/cli)): ``` # 兼容 macOS、Linux 和 WSL curl -fsSL https://cdn.edgepython.com/cli/install.sh | sh edge -h # List all commands ``` `edge` 在由 `install.sh`(在 macOS 上使用 apt、dnf、pacman、zypper、apk 或 brew)提供的无头 Chromium 中承载运行时,用于执行 `serve`、`repl`、`build` 和 `uninstall`。 ### 浏览器 ``` ``` 运行时会生成一个 Web Worker,用于预获取导入、调度原生调用,并将 `print()` 输出流式传输回主线程。 ### Rust 宿主 Edge Python 是一个 `cdylib`:Rust 宿主可以实例化 `compiler.wasm` 并直接调用其导出内容,这与发布到浏览器的 `.wasm` 是同一个文件;宿主负责控制 I/O。将 `edge-python` 声明为 Cargo 依赖会自动获取匹配的 release `.wasm`,请参阅 [`compiler/README.md`](compiler/README.md)。 ## 核心定位 Edge Python 专注于沙箱化的浏览器内执行:这是一个动态的、多范式的 Python 子集,支持类、async/await、结构化模式匹配以及编译时模块解析。没有内置的 stdlib,模块都是外部工件。 完整的语言参考、作用域范围以及有意不支持的内容:[什么是 Edge Python](https://edgepython.com/getting-started/what-it-is)。架构详情:[`compiler/README.md`](compiler/README.md)。 ## CI/CD 单一工作流 [`.github/workflows/main.yml`](.github/workflows/main.yml) 负责运行完整的 CI/CD 流程,其中每个包都是 [`.github/actions/`](.github/actions) 下复合操作中的一个步骤。 在向 `main` 分支推送代码时,它会部署两个 Cloudflare Pages 项目:`edge-python-cdn`(打包的包工件)和 `edge-python-docs`(在 `edgepython.com` 上提供服务)。 ## 许可证 MIT OR Apache-2.0 ## 赞助商 - [PyneSys](https://pynesys.io/),自 2026 年 5 月起
标签:AI工具, Python, Rust, WebAssembly, 可视化界面, 无后门, 沙箱环境, 编译器, 网络流量审计, 虚拟机(VM), 逆向工具, 通知系统