3 分•作者: xiuyuan•20 天前•原帖
在过去的几个月里,我一直在开发 Yulin,这是一个用于 Node.js 的 AWS 模拟器。它在与测试相同的单个进程中模拟 AWS 服务和状态,并且还可以在本地开发时在 localhost 上提供模拟服务。它的概念与 LocalStack 类似,但采取了非常不同的方法,避免使用容器,将所有内容保持在一个进程中,这样您可以在调试器中逐步调试。
5 分•作者: a_bytecycle•20 天前•原帖
我喜欢复古开发的限制。在使用 PICO-8 构建游戏时,我对它如何将数据打包到虚拟卡带中产生了兴趣。我深入研究了隐写术,并开始思考:我能否将相同的逻辑应用于内容管理系统?我们真的需要所有这些臃肿的功能来托管一个微型博客吗? Minilith 是一个无数据库的内容管理系统,整个状态(帖子、页面和设置)都被压缩并直接存储在一个 256x256 的 PNG 文件的像素中。 Minilith 没有任何依赖项。没有 Node,没有打包工具,也没有外部数据库。它完全依赖浏览器 API 来压缩、安全和直接从图像渲染网站。 Minilith 架构生命周期 与传统的后端和数据库不同,流程如下: 1. 负载创建:编辑器数据(JSON)使用私钥进行签名,并使用浏览器的原生压缩算法进行压缩。 2. 注入:压缩后的数据通过隐写术注入到图像的 RGB 通道中。在 IEND 标记之前注入一个原始的 tEXt 块,以包装提取脚本,使图像变成一个可执行的多语言文件。 3. 分发:结果是一个单一的图像文件。它可以直接推送到 Cloudflare KV,或下载到本地。 4. 提取与渲染:客户端加载器获取图像,将其绘制到一个隐藏的画布上,提取数据,验证签名和视觉指纹,并运行解压缩的负载。 由于整个数据库仅仅是一个图片,部署和可移植性极其简单: - Cloudflare 边缘:直接从编辑器发布到 Cloudflare KV,覆盖单个键值对以实现即时更新。 - 自我托管:从编辑器生成一个 .zip 压缩包,并在任何基本的网络服务器上托管。 - 离线可移植性:编辑器利用服务工作者。一旦访问过编辑器,它将被缓存。您可以完全离线查看、编辑和生成新图像。 显而易见的缺陷是激进的图像处理和优化可能会破坏多语言逻辑和数据。(有趣的是:通过 iMessage 发送原始图像可以保留负载) 这段代码是实验性的,链接的帖子是我对该过程的架构分析。我很希望得到反馈,并听听您的想法和意见。