MCPcopy Index your code
hub / github.com/dengcb/weixin-reader-desktop

github.com/dengcb/weixin-reader-desktop @v0.9.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.0 ↗ · + Follow
1,123 symbols 2,591 edges 76 files 248 documented · 22%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🚀 基于 Tauri v2 + Rust 的高性能微信读书桌面客户端

Release License Downloads Tauri Platform

选择理由核心特性快速开始开发指南技术架构


💡 选择理由

通过脚本注入方式增强官方 Web 端体验,完全兼容官方功能的同时提供更好的桌面体验

### 📦 极致轻量 **安装包仅 ~5MB** 内存占用低至 **100MB** 相比 Electron 降低 **80%** ### ⚡ 原生性能 基于 **Rust + Tauri v2** 构建 启动速度快 CPU 占用低 ### 🔒 安全可靠 完全开源 无广告/无跟踪 数据直连官方

✨ 核心特性

🖥️ 桌面体验

✓ macOS 原生菜单栏            ✓ 窗口位置/大小记忆
✓ 完整键盘快捷键               ✓ 恢复最后阅读页面
✓ 多显示器支持                 ✓ 一键移动窗口

📖 阅读增强

**🎨 界面优化** - 🌓 深色模式 - 护眼舒适 - 📺 宽屏模式 - 沉浸阅读 - 🧹 隐藏边栏 - 纯净界面 - 🔍 缩放控制 - 自由调节 **⌨️ 翻页控制** - 🖱️ 触摸板双指滑动 - ⚡ 自动翻页(可调速) - 👻 鼠标自动隐藏 - 🎯 精准进度显示

🔌 插件化架构 v0.8.0 历史性更新

全新可插拔式插件系统,支持第三方适配器与自定义脚本

✓ 支持 .atrd 插件包安装/卸载     ✓ 微信读书作为内置默认插件
✓ 标准化插件开发接口             ✓ 预留本地阅读(EPUB/TXT)能力
✓ 插件级命名空间隔离             ✓ 独立配置与存储系统

🛠️ 可视化插件编辑器 v0.9.0 新增

内置插件开发工具,无需外部 IDE 即可创建和编辑插件

**📝 表单式配置** - 基本信息(ID、名称、版本、描述) - 站点配置(域名、URL 模式) - 功能能力(宽屏、深色、翻页等) **💻 代码编辑** - TypeScript 语法高亮 - 多文件标签页切换 - 实时预览插件信息
路径: 设置 → 插件管理 → 新建插件

🔄 智能更新

  • ✅ 启动后自动检测更新
  • 📥 一键下载安装
  • 🔔 新版本通知

🚀 快速开始

📥 下载安装

前往 Releases 页面 下载最新版本:

芯片类型 下载文件
🍎 Apple Silicon (M1/M2/M3/M4) weixin-reader_x.x.x_aarch64.dmg
💻 Intel weixin-reader_x.x.x_x64.dmg

🔨 从源码构建

# 1. 克隆仓库
git clone https://github.com/dengcb/weixin-reader-desktop.git
cd weixin-reader-desktop

# 2. 安装依赖
bun install

# 3. 构建发布版本
bun release:arm    # Apple Silicon
bun release:intel  # Intel

🪟 Windows 构建(在 macOS 上交叉编译)

# 1. 首次安装(仅需一次)
brew install llvm
cargo install cargo-xwin
rustup target add x86_64-pc-windows-msvc

# 2. 构建
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
bun run build
cargo xwin build --release --target x86_64-pc-windows-msvc --manifest-path src-tauri/Cargo.toml

# 产物: src-tauri/target/x86_64-pc-windows-msvc/release/weixin-reader.exe (~7MB)

🛠️ 开发指南

📋 环境准备

**安装 Rust**
curl --proto '=https' --tlsv1.2 -sSf \
  https://sh.rustup.rs | sh
**安装 Bun**
curl -fsSL https://bun.sh/install | bash

⚡ 开发命令

# 安装依赖
bun install

# 🚀 启动开发模式(热重载 + 自动同步版本)
bun start

# 🔨 构建注入脚本
bun run build:inject

# 📦 完整构建
bun run build

🐛 调试构建

bun run debug        # 快速调试(ARM)
bun run debug:arm    # Apple Silicon
bun run debug:intel  # Intel

📤 发布打包

bun release:all    # 构建所有架构
bun release:arm    # Apple Silicon
bun release:intel  # Intel
bun release:clear  # 清理发布文件

✅ 测试

**Rust 后端测试**
cd src-tauri && cargo test
**TypeScript 前端测试**
bun test

🏗️ 技术架构

📚 技术栈

层级 技术 说明
前端 TypeScript + Vite 注入脚本开发与构建
后端 Rust + Tauri v2 原生桌面能力与系统集成
构建 Bun 极速包管理与脚本执行
测试 Cargo + Bun Test 双层测试覆盖(332+ 测试用例)

🎯 核心架构:脚本注入模式

┌──────────────────────────────────────────────────────────┐
│                      Tauri 应用                           │
├──────────────────────────────────────────────────────────┤
│                                                          │
│  ┌─────────────┐        IPC         ┌─────────────────┐  │
│  │             │◄──────────────────►│                 │  │
│  │  Rust 后端   │                    │  WebView 前端   │  │
│  │             │                    │                 │  │
│  │  • 原生菜单  │                    │  • inject.js    │  │
│  │  • 设置持久  │                    │  • 六大管理器     │  │
│  │  • 多显示器  │                    │  • 状态同步      │  │
│  │  • 自动更新  │                    │                 │  │
│  │             │                    │                 │ │
│  └─────────────┘                    └────────┬────────┘ │
│                                              │          │
└──────────────────────────────────────────────│──────────┘
                                               │
                              ┌────────────────▼──────────────┐
                              │   weread.qq.com (官方网站)     │
                              └───────────────────────────────┘

🔧 前端模块(六大管理器)

位于 src/scripts/managers/ 目录:

管理器 核心职责
IPCManager 🎯 中央事件总线,路由/标题监控
AppManager 🚀 应用初始化,恢复阅读进度
MenuManager 📋 菜单状态同步,处理菜单动作
StyleManager 🎨 宽屏模式,隐藏工具栏,样式注入
ThemeManager 🌓 深色模式,链接处理,缩放控制
TurnerManager 📖 翻页控制器(含子模块:自动翻页、滑动翻页、鼠标隐藏)

🦀 Rust 后端

位于 src-tauri/src/ 目录:

模块 核心职责
lib.rs 🎯 应用入口,插件初始化,脚本注入
commands.rs 🔌 IPC 命令定义(前后端通信接口)
menu.rs 📋 原生菜单构建,事件处理
monitor.rs 🖥️ 多显示器支持,事件驱动检测
plugin_manager.rs 🔌 插件生命周期管理(安装、卸载、代码注入)
settings.rs 💾 设置文件读写,浅合并策略
update.rs 🔄 自动更新检查与安装

🔌 Tauri 插件

tauri-plugin-opener        → 外部链接处理
tauri-plugin-store         → 前端数据存储
tauri-plugin-window-state  → 窗口状态持久化
tauri-plugin-log           → 日志记录
tauri-plugin-updater       → 自动更新
tauri-plugin-shell         → Shell 命令执行

📖 文档

  • 📝 测试文档 - 详细的测试指南(Rust + TypeScript,332+ 测试用例)
  • 🔌 插件架构 - 插件系统设计与开发指南

⚠️ 免责声明

本项目仅为个人学习和使用的第三方客户端,与腾讯公司及微信读书团队无任何关联

### ✅ 承诺 - 完全开源 - 无隐私收集 - 无广告植入 - 无商业用途 ### 📡 数据来源 所有内容均通过官方接口 **weread.qq.com** 直接加载 ### 🙏 声明 仅供学习交流 请支持正版 遵守相关法律法规

📄 开源协议

MIT License © 2026


Built with ❤️ using Rust & Tauri

如果这个项目对你有帮助,请给个 ⭐️ Star 支持一下!

Extension points exported contracts — how you extend this code

EventsAPI (Interface)
(no doc) [3 implementers]
src/scripts/core/plugin_types.ts
ListenerWrapper (Interface)
* 事件监听器包装
src/scripts/core/event_bus.ts
ReaderPlugin (Interface)
(no doc) [2 implementers]
src/scripts/core/plugin_types.ts
PluginManifest (Interface)
(no doc)
src/scripts/build_plugin.ts
ListenerOptions (Interface)
(no doc)
src/scripts/core/event_bus.ts

Core symbols most depended-on inside this repo

info
called by 165
src/scripts/core/plugin_types.ts
get
called by 152
src/scripts/core/plugin_types.ts
emit
called by 98
src/scripts/core/plugin_types.ts
debug
called by 86
src/scripts/core/plugin_types.ts
error
called by 80
src/scripts/core/plugin_types.ts
warn
called by 76
src/scripts/core/plugin_types.ts
register
called by 73
src/scripts/core/plugin_types.ts
on
called by 68
src/scripts/core/plugin_types.ts

Shape

Method 620
Function 340
Class 126
Interface 35
Enum 2

Languages

TypeScript83%
Rust16%
Python1%

Modules by API surface

src/scripts/inject.js393 symbols
src/scripts/core/plugin_types.ts66 symbols
src/scripts/core/plugin_api.ts35 symbols
src-tauri/src/commands.rs31 symbols
src/scripts/adapters/reading_site_adapter.ts25 symbols
src/scripts/adapters/progress_tracker.ts25 symbols
src-tauri/tests/update_test.rs24 symbols
src/scripts/core/settings_store.ts23 symbols
src/scripts/adapters/weread_adapter.ts23 symbols
src/scripts/core/plugin_registry.ts20 symbols
src/scripts/core/plugin_loader.ts20 symbols
src/scripts/core/event_bus.ts19 symbols

For agents

$ claude mcp add weixin-reader-desktop \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page