跳到正文
发现
ctdozlite:Rust 原生 Zalo 桌面客户端
桌面应用效率工具

ctdozlite:Rust 原生 Zalo 桌面客户端

用 Rust 重写的 Zalo 桌面客户端,不依赖 Electron,内存占用低、启动快,支持 GUI 与终端界面。

admin
发布于 2026-11-02
浏览
1
访问
0
下载
0
版本
v0.0.4
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

ctdozlite 是一个用 Rust 重写的 Zalo 桌面客户端,界面基于 eframe/egui(图形界面)与 ratatui(终端界面),直接对接 Zalo Web/PC 的 API 与 WebSocket,不经过 Electron 或 Chromium,可编译为单一二进制文件。

官方 Zalo PC 基于 Electron 打包,README 给出的实测对比显示:ctdozlite 常驻内存约 149.5 MB(官方约 1800–1975 MB)、单进程运行、可执行文件约 17.2 MB、窗口启动约 0.18–0.19 秒(数据来自 Windows 11 上的实测,使用 Get-Process WorkingSet64 取中位数)。

主要功能

  • 登录与会话:支持二维码登录(手机扫码确认)与密码登录;会话保存在 session.json,重新打开时自动校验 zpw_sek,失效则回到扫码界面。
  • 实时消息:WebSocket(zpw_ws)为主,HTTP 轮询(get_last_msgs)作为兜底;支持一对一聊天、群聊、我的云、引用回复、转发、表情回应、置顶、星标、撤回与本地删除。
  • 消息类型:文本、图片(支持 Ctrl+V / Cmd+V 直接粘贴剪贴板)、附件、贴纸与链接预览。
  • 贴纸智能建议:在输入框上方根据越南语关键词、短语或表情符号自动推荐贴纸,兼容带声调/不带声调与常见缩写(如 tks、hpbd、g9),贴纸图片在后台并行预取并缓存到 stickers_cache/。
  • 本地存储:threads_cache.json 保存会话列表快照,打开即可显示界面;zalo_history.db(SQLite)保存本地聊天历史并按 msg_id 去重。
  • 一对一语音/视频通话:用 Rust 实现通话信令与 ZRTP relay 握手,不依赖 ZaloCall.exe;音频通过 cpal + opus 双向传输,视频为 H.264,配合 ffmpeg 采集摄像头与解码。
  • 双界面模式:GUI(支持 Dark/Light 主题、方向键选择贴纸、未读提示、--dev 调试面板)与 TUI(适合命令行/SSH 环境)。

安装与使用

各平台与各 Linux 发行版的安装包都在 GitHub Releases 发布,包括 Linux 的 .deb/.rpm/.AppImage/.tar.gz、Windows 的 .exe,以及 macOS 的 .dmg(Apple Silicon arm64、Intel x86_64 与 Universal)。详细安装、SHA-256 校验与卸载说明见 docs/CAI_DAT.md。

从源码编译需要 Rust 1.75+、CMake 3.15+、pkg-config 和 C/C++ 编译器;只有使用视频通话时才需要 ffmpeg 位于 PATH。

git clone https://github.com/ctdoteam1110/ctdozlite.git
cd ctdozlite
cargo build --release

运行图形界面(默认):

./target/release/ctdozlite --gui

终端界面:

./target/release/ctdozlite --tui --qr

TUI 中用 ↑/↓(或 j/k)移动、Enter 发送、Tab 切换区域、r 刷新、q 退出。协议调试面板用 --gui --dev 打开;--logout 用于退出登录并清除会话。

Linux 编译前需安装系统库,例如 Ubuntu/Debian:

sudo apt install -y build-essential cmake pkg-config libasound2-dev libgtk-3-dev libssl-dev ffmpeg

注意事项

  • 项目声明为独立开源的学习与协议兼容性研究项目,与 VNG Corporation、Zalo 无任何关联、合作或赞助,完全非商业;使用者自行承担使用风险。
  • 部分功能可能只实现了一部分,README 建议先查阅 功能与限制、已知问题 与 故障排查 再提 issue。
  • 聊天记录以明文 SQLite 保存在本机,除 Zalo 系统外不会上传到第三方服务器;在共用电脑上建议开启系统磁盘加密(BitLocker / FileVault / LUKS)。
  • 若使用 CMake 4.0+ 遇到 opus-sys 最低版本检查报错,编译时设置 CMAKE_POLICY_VERSION_MINIMUM=3.5。
  • 项目主页:https://ctdozlite.ctdo.net/

本作品整理自 GitHub 开源项目 ctdoteam1110/ctdozlite,原作者 @ctdoteam1110,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v0.0.4当前版本

    修复消息时间按系统时区显示、启动前选择可写数据目录、历史查询返回最新记录;优化大历史记录下窗口打开速度,只渲染可见内容;按需加载 CJK 字体;发布二进制去除符号并修复 Windows 图标链接。

评论