dylan-sutton-chavez/edge-python
GitHub: dylan-sutton-chavez/edge-python
Edge Python 是一个沙箱化的 Python 子集编译器与栈式虚拟机,可编译为约 200 KB 的 WebAssembly 模块在浏览器中安全运行。
Stars: 244 | Forks: 12
针对沙箱化 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`。 ### 浏览器 ```
标签:AI工具, Python, Rust, WebAssembly, 可视化界面, 无后门, 沙箱环境, 编译器, 网络流量审计, 虚拟机(VM), 逆向工具, 通知系统