28 分•作者: olexsmir•2 个月前
返回首页
最新
28 分•作者: h1watt•2 个月前
1 分•作者: JustSkyfall•2 个月前
1 分•作者: gritzko•2 个月前
1 分•作者: fallais•2 个月前
1 分•作者: jmanjmanjman•2 个月前
1 分•作者: nplcreator•2 个月前
1 分•作者: nill0•2 个月前
1 分•作者: Tomte•2 个月前
1 分•作者: paulnpace•2 个月前
1 分•作者: Michelangelo11•2 个月前
1 分•作者: virinchi_cv•2 个月前
人手一台相机,我们每个人都是摄影师。我们一周拍的照片,比我们父母十年的总和还要多。
然而,要找到那一张真正有意义的照片,却从未如此困难。云服务声称能解决这个问题,但却不切实际。它们要求你将照片上传到它们的服务器,并为此付费,而你可能每月只使用一次这项服务。
于是我构建了 Smriti,一个完全离线的、基于 Rust 的照片浏览器,让你可以在不上传任何照片的情况下浏览你的回忆。人脸识别、语义搜索、相册推荐、回忆录等功能都已集成到应用程序中,因此添加你的照片后,它能提供比 Google Photos 更好的体验。
你可以通过提供的链接进行尝试。它使用 Rust 和 Tauri 构建,兼容 Linux、Mac 和 Windows。首先查看演示网站,了解 Smriti 的功能。
最棒的是,浏览完成后,拔下硬盘,你所有的回忆都随身携带。将其插入另一台电脑,即可获得完全相同的体验。
3 分•作者: ccheshirecat•2 个月前
我构建 Cygnus 的初衷是长期以来对选择 Web 应用部署方案时必须做出的妥协感到沮丧。
生态系统被割裂成几个不同的阵营,每个阵营为了平衡隔离性、启动延迟和自身利润,都在牺牲用户体验或运行时兼容性。
* **Docker**:更笨重、更慢,因为它需要管理比 Web 应用更多的东西。支付了你不需要的开销。
* **MicroVMs**:隔离性好,但维护成本巨大,开销也很大。非常适合不受信任的代码,但对于你自己的应用来说是过度设计。
* **Workerd**:通过强制执行进程内 V8 隔离模型来试图绕过硬件隔离。运行时被阉割,以防止任意系统调用执行。我个人仍然认为为了其边缘计算的优势,这种权衡是值得的,但我仍然时不时地抱怨它。
* **Vercel/托管无服务器**:提供了出色的开发者体验,使用了 MicroVMs,这有利于兼容性,但其商业模式最终会一本正经地向你收取六位数的账单(每 GB 带宽 0.15 美元,而预算提供商按 TB 收费仅为几美分),并迫使你牺牲状态管理。
这些限制对于超大规模云服务商或企业来说是有意义的,但我的需求并非如此。
我只是想要一个像 workerd 一样轻巧快速(不完全一样,但可能是最接近的),但又比仅仅将它们作为裸用户空间进程运行更稳健的方案。容器只是包装了命名空间、cgroup、seccomp 和 netns 的标准 Linux 进程。你可以用 systemd 来实现同样的功能。而且随着 Bun 已经成熟到可以用于生产环境,将一个一体化的 JavaScript 运行时直接与原生的 Linux 内核原语结合起来,简直是理所当然的事情。
因此,我将它们结合起来,创造了 Cygnus,一个单一的 Rust 守护进程,它将原始的内核原语和 Bun 变成了一个自托管的、可缩减至零的应用平台。
```
[ 客户端:HTTP/1.1 · HTTP/2 · HTTP/3 (QUIC) ]
|
v
[ Cygnus 守护进程 ]
├─ TLS 终止 (rustls) + ACME 管理器
├─ H1/H2/H3 前端,统一为 H1 上游
├─ 路由:SNI/主机 → ArcSwap<HashMap>
├─ io_uring 代理循环 (splice UDS↔TCP)
├─ Cage 监控器 (启动、健康检查、耗尽、回收、崩溃回退)
└─ 管理 API (仅限 root 的 UDS) + 租户 0 桥接 (类型化命令)
|
| HTTP/1.1 通过每个应用的 UDS (池化,保持连接)
v
========== CAGE — 每个应用,预热,复用 ==========
userns · mntns · pidns · ipcns · utsns · netns
cgroup v2 (mem/cpu/pids) · seccomp 允许列表
bun (通过页缓存共享文本,按版本)
├─ 预加载 shim:listen()/Bun.serve → UDS
└─ 构件:bundle.js + bundle.jsc (RO 挂载)
出口:veth ─ nftables 策略 ─ 主机 NAT
DNS:主机侧转发器在网关 IP
```
你将获得:
* 约 50ms 的冷启动时间,零客户内核开销
* 页缓存共享运行时(资源占用低)
* 100% 原生兼容性(它实际上是在运行 bun)
* 零配置设置(注入一个监听器 shim 来服务应用,无需手动更改)
* 自用的控制平面,具有出色的用户体验和作为租户 0 运行的仪表板
Cygnus 使用 Cages,一种共享内核进程隔离模型。目前的设计,它适用于受信任的代码(你的应用或你信任的应用)。它提供了深度防御,以抵御有缺陷的代码、供应链攻击和 SSRF。然而,它(目前)不适用于不受信任的、匿名的多租户场景。
我很想听听你对架构、内核原语选择和 seccomp 过滤策略的看法!
尝试它只需要一行命令,它在 macOS 上也能运行,但没有 Linux 隔离的任何好处,这适合测试或本地运行。
```bash
curl -fsSL https://cygnus.run/install.sh | bash
```
GitHub 仓库里有一个演示 GIF,如果你想看看它的样子!
[https://cygnus.run](https://cygnus.run)
[https://github.com/0xchasercat/cygnus](https://github.com/0xchasercat/cygnus)
1 分•作者: asontha•2 个月前
2 分•作者: eyruz•2 个月前
2 分•作者: anqer•2 个月前
2 分•作者: plaur782•2 个月前
2 分•作者: Michelangelo11•2 个月前
2 分•作者: nathell•2 个月前
2 分•作者: giuliomagnifico•2 个月前