我已经在Octopii上工作了大约一年,这是一款“开箱即用”的库,旨在让在Rust中构建分布式系统变得像编写标准结构体一样简单。
Octopii就像一个“分布式系统内核”。它处理集群的物理层面(存储、网络、领导者选举),让你可以完全专注于应用逻辑。
它实际上是类似于Cloudflare Durable Objects的基础设施,但以一个你可以在自己硬件上运行的crate的形式打包。
返回首页
最新
I've never posted on ShowHN before, but I wanted to share my Xmas 2025 project; to try a new approach to controlling our kids screen time.<p>This also involved massively over-engineering a solution in order to play with a shiny new gadget (and avoid the in laws at Christmas, obviously)<p>I've shared some learnings on AI coding with embedded devices, and how I approached the product design/hardware selection side of things.<p>The Web App is at <a href="https://screenie.org" rel="nofollow">https://screenie.org</a> - and I'm Open Sourcing the device and web app code later today (links to follow on that site)
我花了几个月的时间在一个我希望几年前就能拥有的项目上。
我不断遇到同样的问题:持续集成(CI)通过,但生产环境的邮件却无法发送。TLS 握手失败、DKIM 对齐不匹配、SPF 软失败……这些问题只有在真实邮件服务器参与时才会显现出来。
大多数测试工具(如 Mailpit、MailHog)都是通用的。它们确认“邮件已发送”,但并不验证协议。而且它们也不适合网络暴露的环境:没有身份验证、不受保护的 Web 界面、容易枚举消息。
VaultSandbox 是我对此问题的解决尝试。
它是一个自托管的 SMTP 网关(AGPLv3),在每个传入消息上验证 SPF、DKIM、DMARC 和 rDNS。你可以在测试中继续使用你的生产邮件提供商(如 Postmark、SendGrid、SES),只需更改收件人域名即可。无需模拟,无需配置更改。
它提供了客户端 SDK(Node、Python、Go、Java、.NET),以及用于手动测试的 Web 界面和命令行界面。
一些技术细节:
**确定性测试**
SDK 使用服务器推送事件(SSE),而不是轮询或睡眠循环,因此测试断言会在邮件到达网关时立即触发。
**最小基础设施占用**
使用 NestJS 和 Angular 构建,没有外部数据库依赖,以保持容器占用小且更易于理解。
**后量子加密**
我使用 ML-KEM-768 作为加密层。传入邮件会立即使用客户端生成的公钥进行加密,明文会被丢弃。服务器只存储加密后的消息数据,无法解密。我选择后量子加密是因为我想构建一个在五年内不需要重新审视的解决方案。如果它能可靠地处理大型后量子密钥,其他一切都很简单。
**快速入门:**
[https://vaultsandbox.dev/getting-started/quickstart/](https://vaultsandbox.dev/getting-started/quickstart/)
**网站:**
[https://vaultsandbox.com](https://vaultsandbox.com)
我非常希望能收到反馈,特别是关于 AGPLv3 是否会成为你在开发中自托管的障碍。
GitHub profile analysis
- Build your embedding from your Stars
- Compare and discover popular people with similar interests and share yours
- Generate a Skill Radar
- Recommend repositories you might like
我刚刚想到一个非常有趣的主意,就是在我的GitHub个人资料上制作一个可玩版本的《毁灭战士》(DOOM),这源于我去年在二维码中构建《毁灭战士》的经历(<a href="https://news.ycombinator.com/item?id=43729683">https://news.ycombinator.com/item?id=43729683</a>),我终于停止了拖延,开始尝试构建它。
DoomMe是一个可以在GitHub的Markdown查看器上运行的DOOM E1M1地图,而该查看器不支持JavaScript、WebAssembly或甚至iframe。它使用一个无状态引擎,捕捉地图中每个可能位置(每64个单位距离)的四个方向,并通过图形逻辑将8000多个WebP图像和Markdown文件拼接在一起。
由于它是无状态的,我不得不手动编辑WAD文件,以“打开”E1M1的门,以便稍后使用omgifol捕捉地图内的所有有效位置!
该项目是开源的,采用MIT许可证,当前版本大小不到190MB,包含所有资源。
- 在我的个人资料上玩它:<a href="https://github.com/Kuberwastaken" rel="nofollow">https://github.com/Kuberwastaken</a>
- 博客文章涵盖了大部分过程、实现和失败尝试:<a href="https://kuber.studio/blog/Projects/How-I-Made-DOOM-Run-Inside-a-GitHub-Readme" rel="nofollow">https://kuber.studio/blog/Projects/How-I-Made-DOOM-Run-Inside-a-GitHub-Readme</a>
该应用的第四个支点<p>发现并与他人分享积极的体验。发布计划以复制你所感激的事物,并查看哪些内容与社区产生共鸣。投掷硬币以表示你对共同发展这些积极体验的兴趣。<p>谁在使用CoinFountains?<br>早期用户<br>在其他人之前找到并分享有效的经验。<p>企业家<br>帮助发展和扩大已经有效的事物。<p>愿景者<br>看到有效事物的潜力并帮助其成长。
我创建了一个应用程序,您可以在其中体验棱镜、透镜和镜子的物理特性——然后在3D环境中骑乘光子,穿越您的光学障碍课程。<p>为了更深入的了解,我还在撰写一系列配套的博客文章:<a href="https://artepants.fun/posts/spectral-lab-2/" rel="nofollow">https://artepants.fun/posts/spectral-lab-2/</a>
我开发了DDL到数据(DDL to Data),是因为我多次拒绝了“只需使用生产数据并进行脱敏”的请求。团队需要填充的数据库来进行测试,但提取生产数据意味着需要进行安全审查、个人身份信息(PII)清理和DevOps工单。手动编写的种子脚本作为替代方案,速度慢、脆弱,并且在架构变更的瞬间就会失去同步。
只需粘贴你的CREATE TABLE语句,就能获得逼真的测试数据。它会解析你的架构,保留外键关系,并生成看起来真实的数据,电子邮件看起来像电子邮件,时间戳合理,唯一性约束得到遵守。
无需设置,无需配置。支持PostgreSQL和MySQL。
我希望能收到任何处理测试数据或暂存环境的人的反馈。还有什么缺失的吗?