Skip to content

功能特性

Reader-Rust 是一个用 Rust 实现的书源阅读服务器,包含两套前端界面。以下是当前已实现的功能。

前端界面

本项目提供两个前端版本:

新版前端(推荐)

  • 路径: frontend/
  • 技术栈: Vue 3 + TypeScript + Vite + Pinia
  • 状态: 功能完整,推荐使用

已完成功能:

基础架构

  • Vite + Vue 3 + TypeScript 项目
  • CSS 变量设计系统(亮色/暗色主题)
  • Axios 封装(Token 注入、统一错误处理)
  • Vue Router 路由配置
  • Pinia 状态管理

书架功能

  • 书架首页(分组展示、响应式网格布局)
  • 分组标签页(全部 / 未分组 / 自定义分组)
  • 书籍卡片(封面、书名、作者、未读角标)
  • 编辑模式批量删除

搜索功能

  • SSE 实时多源搜索
  • 搜索结果列表展示
  • 搜索中动画指示器
  • 搜索结果加入书架

阅读功能

  • 全屏阅读区域
  • 章节目录抽屉(左侧滑出,高亮当前)
  • 字体/行距调节(A-/A+, 1.5/1.8/2.0/2.5)
  • 阅读进度保存
  • 简繁转换(OpenCC.js)
  • 上一章/下一章导航

阅读增强

  • 左侧导航栏(书架、书源、目录、设置、首页)
  • 右侧浮动工具栏(书签、刷新、自动翻页、听书、夜间模式)
  • 完整阅读设置面板(主题、字体、排版、翻页设置)
  • 书签管理(添加/查看/删除书签)
  • 书源切换(阅读页内切换数据源)
  • 章节内容全文搜索
  • 内容过滤规则(去广告)
  • 自动翻页(像素滚动、可调速度)
  • 翻页点击区域可视化

书源功能

  • 书源管理弹窗(启用/禁用、分组筛选、删除)
  • 远程 URL 导入书源
  • 书海探索(按分类浏览书源书籍)

RSS订阅

  • RSS 源管理
  • 文章列表浏览
  • 文章内容阅读

设置

  • 登录/注册/注销
  • 用户信息显示
  • 亮色/暗色主题切换
  • 阅读统计(累计时长、书籍数、章节数)
  • 书架缓存刷新
  • 服务端备份

PWA 支持

  • 离线访问(缓存最近阅读章节)
  • 安装到主屏幕
  • Service Worker 更新
  • 离线 HTML 页面

启动方式:

bash
cd frontend
npm install
npm run dev      # 开发模式
npm run build    # 构建

旧版前端

  • 路径: web/
  • 技术栈: Vue 2 + Element UI + Vue CLI
  • 状态: 稳定可用,功能完整

功能特性:

  • 本地存储阅读记录与设置
  • 阅读主题切换
  • 夜间模式
  • 字号调节
  • 字体调节
  • 阅读宽度调节

启动方式:

bash
cd web
npm install
npm run serve    # 开发模式
npm run build    # 构建

前端对比

特性新版 (frontend/)旧版 (web/)
Vue 版本Vue 3Vue 2
构建工具ViteVue CLI
状态管理PiniaVuex
UI 框架纯 CSS + 组件Element UI
类型安全TypeScriptJavaScript
PWA
离线阅读
课程度开发中稳定

后端功能

  • 书源列表 - 查看已添加的书源
  • 添加/编辑书源 - 支持自定义书源规则
  • 批量导入导出 - JSON 格式的书源批量操作
  • 书源测试 - 内置调试工具,测试搜索和解析
  • 读取远程书源 - 从 URL 导入书源文件
  • 设置默认书源 - 标记默认书源
  • 删除书源 - 单书源或全部清空

书籍搜索

  • 关键词搜索 - 通过书源搜索书籍
  • 发现页浏览 - 按分类浏览书籍
  • 多源搜索 - 同时搜索多个书源
  • 搜索结果过滤 - 查找有效书源
  • 书源调试 - 实时调试书源解析 (SSE)

书架管理

  • 书架列表 - 查看所有收藏的书籍
  • 添加书籍 - 保存到书架
  • 删除书籍 - 单本或批量删除
  • 获取书籍详情 - 包含缓存信息
  • 设置书源 - 更换书籍的数据源
  • 书籍分组 - 创建分组、移动书籍到分组
  • 书籍排序 - 拖动调整显示顺序

阅读功能

  • 获取目录 - 拉取书籍章节列表
  • 章节正文 - 获取并解析章节内容
  • 阅读进度 - 保存和恢复阅读位置
  • 删除缓存 - 清理本地章节缓存
  • 缓存书籍 - 预下载章节 (SSE 实时进度)

书签功能

  • 获取书签 - 列表查看
  • 添加书签 - 保存阅读位置
  • 批量书签 - 多条书签操作
  • 删除书签 - 单条或批量删除

替换规则

  • 规则列表 - 管理文本替换规则
  • 添加规则 - 创建替换模式
  • 批量操作 - 多条规则导入
  • 删除规则 - 清理不需要的规则

RSS 订阅

  • RSS 源管理 - 添加、编辑、删除订阅源
  • 导入导出 - 远程或本地 RSS 源文件
  • 获取文章 - 拉取 RSS 文章列表
  • 文章内容 - 解析并阅读 RSS 内容

服务端备份

  • 文件列表 - 浏览 服务端备份文件
  • 下载文件 - 从服务端获取
  • 上传文件 - 备份到 服务端
  • 删除文件 - 清理云端文件

用户系统

  • 登录登出 - JWT Token 认证
  • 用户信息 - 查看当前登录用户
  • 用户列表 - 管理多用户 (管理员)
  • 添加用户 - 创建新账号
  • 修改密码 - 自助或重置他人密码
  • 删除用户 - 管理员删除用户
  • 用户配置 - 个性化设置存取

其他功能

  • 文件上传 - 上传图片等资源
  • 文件删除 - 管理上传的文件
  • 获取封面 - 书籍封面图代理
  • 无效书源检测 - 找出失效的书源
  • TXT 目录规则 - 获取默认目录解析规则

技术特点

  • 高性能 - Rust 实现,异步处理
  • 多解析器 - CSS选择器、JSONPath、XPath、正则、JavaScript
  • 数据持久化 - SQLite 存储,文件缓存
  • Web 界面 - Vue 2 前端,响应式设计

请求流程

用户请求 -> API 路由 -> Handler -> Service -> Parser/Crawler -> 返回结果

配置方式

通过环境变量配置,详见 配置