通心粉 – 一个单独的 HTML 文件消息应用
通心粉消息应用 是一个实现为单个 HTML 文件的消息应用 俄语版本:README.ru.md。许可证:随你所愿的公共许可证。尝试在线演示:打开通心粉消息应用。下载:messenger.html。源码仓库:github.com/vanyapr/makaroshki。演示打开一个硬编码的只读 .macaroni 数据集,因此第一个屏幕不会消耗未认证的 GitHub API 速率限制。无需令牌。无需注册。无需后端。你可以立即阅读演示 .macaroni 聊天。要读取或写入真实的仓库,请打开设置并连接一个 GitHub 仓库。要发送消息,你需要一个拥有仓库内容读/写访问权限的 GitHub 令牌,因为 GitHub 是我们拒绝构建的后端。 本地运行 下载 messenger.html。在 Chrome、Chromium 或 Edge 中打开它。以只读模式使用默认公共仓库,或打开设置并连接你自己的仓库。localhost 不是产品的一部分。双击是。发送真实消息 创建或选择一个 GitHub 仓库。创建一个细粒度的 GitHub 令牌,内容为:为该仓库读取和写入。打开 messenger.html。将你的名字、仓库 URL 和令牌放入设置中。写一些值得提交的内容。详细指南:如何获取访问令牌。 演示仓库结构 通心粉文件存储在 .macaroni/ 下,因此消息应用可以附加到任何仓库而不会让根目录变成意大利面。 .macaroni/ protocol.json users/<client_id>.json chats/<chat_id>/meta.json chats/<chat_id>/members.json chats/<chat_id>/messages/YYYY/MM/DD/<message_id>.json inbox/<client_id>/<message_id>.json 演示数据硬编码在 messenger.html 中;真实的连接仓库使用相同的布局。 诚实的局限性 通心粉消息应用不是私密的。公共仓库意味着公共消息。私有仓库意味着任何有仓库访问权限的人都可以读取。GitHub 目前是唯一有效的写入提供者。GitLab、GitVerse、Gitea、Forgejo 和其他 git 主机是未来适配器的协议目标。今天它们还没有完成写入适配器。浏览器支持故意严格:需要支持 file:// 或 https:// 的持久存储、本地存储、IndexedDB 和 WebCrypto。推荐的浏览器:Chrome、Chromium、Edge。没有实时传输。新消息通过轮询到达,传出的写入通过本地发件箱进行。GitHub API 速率限制存在。公共演示已被硬编码以避免在首次加载时消耗未认证的速率限制。真实的连接仓库仍然使用 GitHub API。令牌存储在浏览器的本地存储中。这是方便的,但不是安全的存储。切勿将真实的令牌粘贴到公共聊天、屏幕截图、问题、README 示例或 Hacker News 评论中。如果你这样做了,请撤销。大的仓库会很慢。如果聊天变得太大,请创建另一个仓库。这被称为扩展。 文档:PHILOSOPHY.en.md - 主要项目原则。docs/product-brief.en.md - 产品和架构的详细简介。docs/roadmap.en.md - 当前实施路线图。docs/development-steps.en.md - 顺序开发计划。docs/protocol-v1.en.md - 通心粉协议 v1 文件模型。docs/github-provider.en.md - 第一个真实提供者适配器。docs/plugin-boundary.en.md - 浏览器端插件边界。docs/electron-wrapper.en.md - 可选的 Electron/WebView 包装合约。docs/settings-export-import.en.md - 手动设置备份和恢复。docs/portable-mom.en.md - 为母亲准备的便携式 HTML 文件,内置预配置文件。CONTRIBUTING.md - 贡献规则:一个 HTML 文件,无后端角色扮演。docs/show-hn.md - Show HN 推介和常见问题。docs/browser-support.en.md - 支持的浏览器功能矩阵。docs/access-token.en.md - 如何获取访问令牌。docs/gitverse-token.en.md - 如何获取 GitVerse 访问令牌。 俄语文档:README.ru.md PHILOSOPHY.md docs/product-brief.md docs/roadmap.md docs/development-steps.md docs/protocol-v1.md docs/github-provider.md docs/plugin-boundary.md docs/electron-wrapper.md docs/settings-export-import.md docs/portable-mom.md docs/show-hn.ru.md docs/browser-support.md docs/access-token.md docs/gitverse-token.md 通心粉消息应用是一个分布式消息系统,作为单个 HTML 文件实现。消息存储在 Git 仓库中。客户端是一个 HTML 文档。后端不存在。数据库是 Git。传输层是 Git。同步层是 Git。历史存储是 Git。这听起来像一个糟糕的主意。不幸的是,它有效。 主要原则 不要在可以幽默时让事情复杂化。这并不妨碍它们成为真正的软件。通心粉消息应用不是玩笑。它只是拒绝在没有理由的情况下引入复杂性。 为什么会存在这个?通心粉消息应用源于一个简单的观察。给你母亲发送消息不应需要与小银行相当的基础设施。现代通信系统越发围绕以下内容构建:注册、电话号码、集中式服务、应用程序、更新依赖
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡