这个项目能做什么
Wasmer 是一个基于 WebAssembly 的运行时和命令行工具,用于在快速、安全、轻量的沙箱中运行应用程序。沙箱可以在本地、云端或浏览器中运行,对文件、网络和环境的访问由用户控制。
README 中描述的主要特点:
- 默认安全:文件、网络和环境访问均受到明确控制。
- 轻量:启动速度快,内存占用小。
- 开箱即用:Wasmer 注册表提供 Python、JavaScript、Bash、PHP、PostgreSQL、SQLite 和 FFmpeg 等软件包。
- 可嵌入:可通过 Wasmer SDK 将沙箱添加到应用程序中。
CLI 快速入门:
在 macOS 或 Linux 上使用 `curl https://get.wasmer.io -sSfL | sh` 安装;Windows 使用 PowerShell,也支持 Homebrew。首次运行示例:`wasmer run python/python -- -c "print('Hello from Wasmer')"`。软件包会被下载并缓存以供后续运行。`--` 分隔符用于区分 Wasmer 选项和程序参数;`--volume` 授予对本地目录的访问权限,`--net` 启用主机网络。无需安装即可在 wasmer.sh 上试用浏览器版本。
Wasmer SDK 允许开发人员创建沙箱、选择工具并在自己的应用程序中运行代码。它适用于 JavaScript/TypeScript(Node.js 20+)、Python(macOS 和 Linux,Intel 和 ARM64)、Rust(源码依赖,crates.io 发布目前被禁用)和 Swift(Swift 6+,macOS 12+,iOS 27+)。浏览器执行使用相同的 JavaScript API,并需要跨源隔离标头。该 SDK 目前为 alpha 版本。
SDK 功能包括运行命令并捕获输出、通过流式输出管理进程、读写沙箱文件、在单个沙箱中组合多种语言和软件包,以及在明确网络访问权限下运行服务。示例软件包包括 Python、Edge.js、Bash、PHP、PGlite、SQLite 和 FFmpeg。
此仓库包含 Wasmer 运行时和 CLI;沙箱 SDK 位于单独的仓库中。可通过 Rust 和 C API 进行更低级别的嵌入。该项目采用 MIT 许可证,接受贡献,并提供从源码构建、测试、安全报告和问题跟踪的文档。社区渠道包括 Discord、X、LinkedIn 和博客,README 还有多种语言的社区翻译版本。
评论
0 评分人数达到10人后显示
登录后参与讨论。