Ask HN:有人对原生 Qt/C++ 的 Discord 客户端感兴趣吗?
5 分•作者: txtsd•4 个月前
我一直在用 C++ 和 Qt 6 构建一个名为 kind(kind 并非 Discord)的第三方跨平台 Discord 客户端。没有 Electron,没有 Web 封装。这是一个真正的原生应用,适用于 Windows、macOS 和 Linux。<p>UI 总是瞬间加载。首次加载时,内容出现的速度与 Discord 的网络响应时间一样。后续加载时,所有内容都来自缓存,并在后台根据 REST 进行验证。它的速度感觉就像打开一个纯文本文件。<p>它比我开始时预期的要更进一步。目前正在运行的功能包括:带有指数退避和重连的网关,带有每路由速率限制的 REST,带有异步读/写的 SQLite 支持的缓存,完整的 Discord 权限解析,以及一个可组合的块渲染器,可以处理每种 Discord 消息类型,包括嵌入、附件、反应、贴纸和组件。它有一个完整的 Markdown 解析器,一个带有内存 LRU 和磁盘持久性的异步图像缓存,一个在重启后仍然有效的未读和静音状态系统,以及 370 个通过的单元和集成测试。<p>语音是一个发布后的问题。Nitro 功能也是如此。<p>除了 Linux 资深用户之外,真的有受众会使用这个吗?我知道这是最痛苦的地方,但我真的很好奇,Windows 用户是否会仅仅因为性能而切换,或者官方客户端在那里已经足够好,以至于这无关紧要。
查看原文
I've been building a third-party cross-platform Discord client called kind (kind is not discord) in C++ and Qt 6. No Electron, no web wrapper. A proper native app for Windows, macOS, and Linux.<p>The UI always loads instantly. On first load, things take as long to appear as Discord's network responses. On subsequent loads, everything comes from cache and is validated against REST in the background. It feels as fast as opening a plaintext file.<p>It's further along than I expected when I started. What's working right now: gateway with exponential backoff and reconnect, REST with per-route rate limiting, SQLite-backed cache with async reads/writes, full Discord permission resolution, and a composable block renderer that handles every Discord message type including embeds, attachments, reactions, stickers, and components. There's a full markdown parser, an async image cache with memory LRU and disk persistence, an unread and mute state system that survives restarts, and 370 passing unit and integration tests.<p>Voice is a post-launch problem. So are Nitro features.<p>Is there actually an audience for this outside of Linux power users? I know that's where the pain is most acute, but I'm genuinely curious whether Windows users would switch for the performance alone or whether the official client is good enough there that it doesn't matter.