展示 HN:macOS 上的本地优先 Linux 微型虚拟机
Show HN: Local-First Linux MicroVMs for macOS

原始链接: https://shuru.run

Shuru是一个沙箱工具,能够创建临时、可重复的环境。它允许在隔离的虚拟机中运行命令,这些虚拟机启动迅速,并在终止时丢弃所有更改——默认情况下没有任何内容会持久保存。 主要特性包括:资源控制(CPU、内存、磁盘大小)和通过`--allow-net`进行网络访问控制。初始运行没有网络权限时会受到限制(例如,`ping` 命令会失败),但授予访问权限后可以使用 `apk add` 安装软件包(如 `python3` 或 `nodejs`)。 Shuru支持**检查点**,允许你保存虚拟机的状态 (`shuru checkpoint create`) 并在稍后立即恢复它 (`shuru run --from`)。这便于分支和重用预配置的环境。 恢复的检查点中的网络访问通过 vsock 进行隧道传输,消除了后续连接对 `--allow-net` 的需求(通过一个可以通过端口转发访问的 Python HTTP 服务器进行演示)。本质上,Shuru 提供了一种快速、安全且可重复的方式来试验软件。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 展示 HN:适用于 macOS 的本地优先 Linux 微型虚拟机 (shuru.run)13 分,harshdoesdev 1 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论Shuru 是一个轻量级沙箱,使用 Apple 的 Virtualization.framework 在 macOS 上启动 Linux 虚拟机。在 Apple Silicon 上大约一秒钟启动,并且默认情况下一切都是短暂的。当您想要持久化状态时,有一个检查点系统,并且沙箱在未明确允许的情况下无法访问网络。 单个 Rust 二进制文件,没有依赖项。 为沙箱 AI 代理代码执行而构建,但适用于任何需要一次性 Linux 环境的情况。帮助 xrd 2 分钟前 [–] 这与 lima 相比有什么好处?回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系方式 搜索:
相关文章

原文

$ shuru run -- echo "hello from the sandbox"

hello from the sandbox

$ shuru run -- cat /etc/os-release | head -1

NAME="Alpine Linux"

# VM boots, runs, and tears down — nothing persists.

$ shuru run -- ping -c1 8.8.8.8

ping: sendto: Operation not permitted

$ shuru run --allow-net -- apk add python3

fetch https://dl-cdn.alpinelinux.org/...

OK: 45 MiB in 28 packages

$ shuru run --cpus 4 --memory 4096 -- free -m | head -2

total used free

Mem: 4096 38 4002

$ shuru run --disk-size 2048 -- df -h /

Filesystem Size Used Avail Use% Mounted on

/dev/vda 2.0G 18M 1.9G 1% /

$ shuru checkpoint create myenv --allow-net -- sh -c 'apk add nodejs npm'

shuru: checkpoint 'myenv' saved

$ shuru run --from myenv -- node -e 'console.log("ready")'

ready

# Restore any checkpoint instantly. Branch and reuse.

$ shuru checkpoint create py --allow-net -- apk add python3

shuru: checkpoint 'py' saved

$ shuru run --from py -p 8080:8000 -- python3 -m http.server 8000

shuru: forwarding 127.0.0.1:8080 -> guest:8000

$ curl http://127.0.0.1:8080/

<!DOCTYPE HTML>...

# No --allow-net needed. Tunneled over vsock.

联系我们 contact @ memedata.com