1 分•作者: virinchi_cv•2 个月前•原帖
手握相机,我们每个人都是摄影师。在一周内,我们拍摄的照片数量超过了父母十年间拍摄的总和。然而,找到那张重要的照片从未如此困难。基于云的服务声称可以解决这个问题,但实际上并不实用。它们希望您将自己的照片上传到它们的服务器上,并为此付费,而您可能一个月只使用一次这个服务。 因此,我开发了Smriti,这是一款完全离线的基于Rust的照片查看器,让您可以浏览自己的记忆,而无需任何照片离开设备。人脸识别、语义搜索、相册建议和记忆功能都集成在应用程序中,因此添加您的照片后,使用体验优于Google Photos。 您可以通过提供的链接尝试一下。它是基于Rust Tauri构建的,因此兼容Linux、Mac和Windows。首先查看演示网站,了解Smriti所提供的功能。 最棒的是,一旦您浏览完毕,拔掉驱动器,所有的记忆都将随您而走。将其插入另一台电脑,您将获得完全相同的体验。
3 分•作者: ccheshirecat•2 个月前•原帖
我创建 Cygnus 是因为我对选择 Web 应用程序部署选项时所需做出的妥协感到长期沮丧。<p>这个生态系统被分割成几个不同的阵营,每个阵营都在牺牲用户体验或运行时兼容性,以平衡隔离性、启动延迟和自身的利润空间。<p>Docker:因为需要管理的不仅仅是 Web 应用,所以更重、更慢。你需要支付不必要的开销。 MicroVM:隔离性好,但维护面广,开销大。适合不受信任的代码,但对于自己的应用来说则显得过于复杂。 Workerd:试图通过强制执行进程内的 V8 隔离模型来规避硬件隔离。运行时被削弱,以防止任意系统调用的执行。就个人而言,我仍然觉得为了他们的边缘计算而做出的权衡是值得的,但我还是时不时会对此抱怨。 Vercel/托管无服务器:提供了很好的开发者体验,使用 MicroVM,这对兼容性有好处,但其商业模式最终会让你面带微笑地收到六位数的账单(当预算提供商按每 TB 收取几美分时,收费为每 GB 0.15 美元),并让你牺牲状态性。<p>这些限制对于超大规模企业或大型企业来说是合理的,但我并没有那样的需求。<p>我只是想要一个像 Workerd 一样轻便快速的东西(虽然不完全一样,但我想是最接近的),但比仅仅作为普通用户空间进程运行要更严格。容器只是用命名空间、控制组、seccomp 和网络命名空间封装的标准 Linux 进程。你可以用 systemd 做同样的事情。随着 Bun 足够成熟以用于生产,将一个全能的 JavaScript 运行时直接与原生 Linux 内核原语结合起来变得毫无疑问。<p>因此,我将它们结合成 Cygnus,一个单一的 Rust 守护进程,将原始内核原语和 Bun 转变为一个自托管的、可扩展到零的应用平台。<p>[ 客户端:HTTP/1.1 · HTTP/2 · HTTP/3 (QUIC) ] | v [ Cygnus 守护进程 ] ├─ TLS 终止 (rustls) + ACME 管理器 ├─ H1/H2/H3 前端,标准化为 H1 上游 ├─ 路由:SNI/Host → ArcSwap<HashMap> ├─ io_uring 代理循环 (splice UDS↔TCP) ├─ Cage 监控器 (生成、健康检查、排空、收割、崩溃后退) └─ 管理 API (仅根用户 UDS) + Tenant-0 桥接 (类型化命令) | | 通过每个应用的 UDS 进行 HTTP/1.1 (池化,保持连接) v ========== CAGE — 每个应用,热启动,重用 ========== userns · mntns · pidns · ipcns · utsns · netns cgroup v2 (内存/CPU/PID) · seccomp 允许列表<p><pre><code> bun (通过页面缓存共享的文本,按版本) ├─ 预加载适配器:listen()/Bun.serve → UDS └─ 工件:bundle.js + bundle.jsc (只读挂载) 出口:veth ─ nftables 策略 ─ 主机 NAT DNS:网关 IP 处的主机侧转发器 </code></pre> 你将获得:<p>- ~50ms 的冷启动时间,零客户内核开销 - 页面缓存共享运行时(低资源使用) - 100% 原生兼容性(它实际上在运行 bun) - 零配置设置(注入监听器适配器以服务应用,无需手动更改) - 经过内部测试的控制平面,具有出色的用户体验和作为租户 0 运行的仪表板<p>Cygnus 使用 cages,一种共享内核的进程隔离模型。当前的设计是针对受信任的代码(你的应用或你信任的应用)。它提供了对有缺陷代码、供应链攻击和 SSRF 的深度防御。然而,它尚未针对不受信任的、匿名的多租户环境进行设计。<p>我很想听听你对架构、内核原语选择和 seccomp 过滤策略的看法!<p>尝试它只需一行代码,它在 macOS 上也能运行,但没有任何 Linux 隔离的好处,适合测试或本地运行。<p>curl -fsSL <a href="https://cygnus.run/install.sh" rel="nofollow">https://cygnus.run/install.sh</a> | bash<p>如果你想看看它的样子,Github 仓库有一个演示 GIF!<p><a href="https://cygnus.run" rel="nofollow">https://cygnus.run</a> <a href="https://github.com/0xchasercat/cygnus" rel="nofollow">https://github.com/0xchasercat/cygnus</a>
1 分•作者: the_plug•2 个月前•原帖
Yaiko(<a href="https://github.com/sazalo101/yaiko" rel="nofollow">https://github.com/sazalo101/yaiko</a>)是一个开源的全栈网页框架,基于Rust语言开发。<p>大多数Rust网页库需要单独组装身份验证、会话管理、CSRF、防止请求过载、数据库迁移以及JavaScript构建流程。<p>Yaiko将这些功能打包成一个单一框架,后端使用Rust,前端使用jQuery,无需Node.js构建步骤。<p>特点:<p>基于Hyper和Tokio构建(支持80,000+ RPS)<br>内置SQLite和PostgreSQL迁移运行器(yaiko migrate run)<br>支持CSRF、防止请求过载、WebSockets和后台任务队列<br>脚手架命令行工具(cargo install yaiko)<br>文档:<a href="https://github.com/sazalo101/yaiko/blob/main/BOOK.md" rel="nofollow">https://github.com/sazalo101/yaiko/blob/main/BOOK.md</a><br>Crates.io:<a href="https://crates.io/crates/yaiko" rel="nofollow">https://crates.io/crates/yaiko</a><p>欢迎对API设计和架构提出反馈。