docs: 更新项目描述、文档图片和测试数据

- 更新 README 内容,包括特性描述、快速开始指南和目录结构
- 替换并新增文档图片,删除旧图片
- 更新 package.json 和国际化文件中的项目描述文案
- 修改单元测试中的示例节点地址,移除真实 IP 痕迹
This commit is contained in:
ZenEcho committed 2026-02-22 14:05:30 +08:00
1 parent f3bd337fb3
commit 449c15b2d7
12 files changed
+72 -36

No files matched your search

View File
Whitespace-only changes.
+65 -29
View File
@@ -6,24 +6,33 @@
[![UnoCSS](https://img.shields.io/badge/UnoCSS-Atomic-333333.svg)](https://unocss.dev/)
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
**LagZero** 是一款专为极致游戏体验打造的跨平台、高性能游戏加速器桌面客户端。基于 **Vue 3**、**TypeScript** 和 **Electron** 构建,底层集成强大的 **sing-box** 核心,旨在提供最低延迟、最稳定的网络加速方案。
**LagZero** 是一款专为游戏体验打造的游戏加速器。基于 **Vue 3**、**TypeScript** 和 **Electron** 构建,底层集成强大的 **sing-box** 核心,旨在提供最低延迟、最稳定的网络加速方案。
---
## ✨ 核心特性
- 🚀 **极速性能**: 底层采用高性能网络核心,支持多线程加速,确保毫秒级响应。
- 🎨 **现代美学**: 深度定制的 **Glassmorphism**(磨砂玻璃)设计风格,极致的暗色模式体验。
- 🛠️ **智能监控**: 独创的 **Chain Proxy** 进程链追踪技术,自动识别并加速游戏子进程。
- 🔧 **高度可定制**: 可视化路由规则编辑器,支持 VLESS, VMess, Trojan, Shadowsocks 等主流协议。
- 📦 **开箱即用**: 内置 sing-box 核心自动管理,支持一键更新与版本校验。
- 🌍 **跨平台支撑**: 完美适配 Windows, macOS 和 Linux 操作系统。
- 🚀 **极速性能**: 底层采用高性能 **sing-box** 网络核心,支持多协议节点加速,确保毫秒级响应。
- 🎨 **现代美学**: 深度定制的 **Vue 3** + **Naive UI** 设计风格,提供极致的暗色模式与自定义主题色体验。
- 🎮 **智能游戏库**: 自动扫描并识别本地游戏(Steam、Xbox 等),一键配置加速。
- 🛠️ **精细化控制**: 独创的 **Process Proxy** 进程追踪技术,搭配 TUN 虚拟网卡模式,实现进程级路由分流。
- 🌐 **多协议支持**: 全面支持 Shadowsocks, VMess, VLESS, Trojan, TUIC, Hysteria2 等主流与新兴代理协议。
- 🔌 **本地代理系统**: 内置本地 HTTP/SOCKS 代理服务,支持 PAC 自动代理配置脚本。
- 📊 **流量可视化**: 实时网络延迟测试、节点状态监测与流量统计图表(基于 ECharts)。
- 📦 **开箱即用**: 内置 sing-box 核心自动管理,支持代理订阅自动更新与节点订阅解析。
---
## 📸 界面预览
_(截图正在准备中...)_
<p align="center">
<img src="docImages/dashboard.png" alt="仪表盘" />
<img src="docImages/library.png" alt="游戏库" />
</p>
<p align="center">
<img src="docImages/nodes.png" alt="节点管理" />
<img src="docImages/settings.png" alt="系统设置" />
</p>
---
@@ -40,30 +49,42 @@ _(截图正在准备中...)_
## 🚀 快速开始
### 环境要求
### 环境与依赖
- **Node.js**: 18.x 或更高版本
- **包管理器**: [pnpm](https://pnpm.io/) 9.x 或更高版本
- **Node.js**: 18.x 或更高版本 (推荐使用 LTS 版本)
- **包管理器**: [pnpm](https://pnpm.io/) (必须使用 pnpm)
### 安装依赖
### 安装与运行流程
```bash
# 1. 获取代码并进入工作区 (前提)
# git clone https://github.com/ZenEcho/LagZero.git
# cd LagZero
# 2. 安装所有的 Node 依赖项
pnpm install
```
### 启动开发环境
# 3. 重新编译原生模块 (极度关键!因为依赖了 Better-SQLite3,必须要适配 Electron 的 Node ABI)
pnpm rebuild:native
# 备用命令:如果你在上方重构过程中卡住,可尝试专用的数据库重建脚本
# pnpm rebuild:sqlite
```bash
# 4. 启动开发模式 (包含 Vite 热更新界面与 Electron 主进程热重载)
pnpm dev
```
### 构建打包
### 源码编译与打包构建
| 平台 | 命令 | 说明 |
| :---------- | :------------------ | :------------------------------------- |
| **通用** | `pnpm dist` | 打包当前平台的安装包(Installer) |
| **通用** | `pnpm pack` | 打包为免安装目录(Unpacked) |
| **Windows** | `pnpm dist:win:all` | 同时生成 x64 和 arm64 的安装包与便携版 |
LagZero 配备了齐全的 `package.json` 构建脚手架命令,可直接调用处理打包分发任务:
| `pnpm` 任务指令 | 执行说明 |
| :-------------- | :----------------------------------------------------------------------------------------------------------- |
| `build` | 纯前端侧的**生产编译**(执行 `vue-tsc` 类型检查后输出网页 `dist` 资产) |
| `pack` | 将程序打包为对应平台的**免安装目录** (`Unpacked`),适合用来调试真实的打包环境 |
| `dist` | 直接将应用封包为当前平台的常规**安装包** (`Installer`/`.exe`/`.dmg`/`.AppImage`等) |
| `dist:win:all` | **(Windows 发布必用)** 全量打包构建 `x64` 和 `arm64` 架构下的 **NSIS安装程序** 与 **Portable便携单文件版本** |
_(提示:你还可以从 `package.json` 中发现更细粒度的构建宏,如仅打 x64 便携版 `dist:win:x64:portable`)_
---
@@ -71,16 +92,31 @@ pnpm dev
```text
├── .github/ # GitHub Actions 自动化配置
├── docs/ # 项目文档 (API, 用户手册)
├── docs/ # 项目文档 (API, 用户手册等)
├── docImages/ # 文档相关配图目录
├── electron/ # Electron 主进程源码
│ ├── main.ts # 进程入口
│ └── singbox/ # sing-box 核心集成逻辑
│ ├── common/ # 主进程与渲染进程共享常量 / 类型
│ ├── db/ # 本地 SQLite 数据表结构与迁移
│ ├── main/ # 进程入口与窗口生命周期管理
│ ├── preload/ # 预加载脚本 (ContextBridge 桥接 API)
│ ├── services/ # 核心服务 (代理引擎, 节点解析, 游戏扫描等)
│ ├── stores/ # 本地数据持久化与配置存储
│ └── utils/ # 主进程通用工具函数库
├── public/ # 静态资源 (应用图标等,无须编译构建)
├── src/ # 渲染进程 (Vue 源码)
│ ├── components/ # 组件
│ ├── views/ # 页面
│ ├── stores/ # 状态管理
│ └── assets/ # 静态资源
└── tests/ # 单元测试与集成测试
│ ├── api/ # 接口请求封装
│ ├── assets/ # 全局样式与图片资源
│ ├── components/ # 全局和基础 UI 组件
│ ├── composables/ # Vue 组合式公共函数 (Hooks)
│ ├── constants/ # 前端静态枚举与常数定义
│ ├── layouts/ # 基础页面布局框架
│ ├── locales/ # 多语言国际化配置 (i18n)
│ ├── router/ # Vue Router 路由配置
│ ├── stores/ # Pinia 全局状态管理
│ ├── types/ # 前端 TypeScript 接口与类型定义
│ ├── utils/ # 前端通用辅助工具类
│ └── views/ # 主体业务视图与页面
└── tests/ # 单元测试与端到端测试目录
```
---
Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

+1 -1
View File
@@ -6,7 +6,7 @@
"main": "dist-electron/index.js",
"type": "module",
"author": "LagZero Team",
"description": "是一款专为极致游戏体验打造的、高性能游戏加速器桌面客户端",
"description": "一款专为游戏体验打造的游戏加速器",
"repository": {
"type": "git",
"url": "https://github.com/ZenEcho/LagZero.git"
+1 -1
View File
@@ -239,7 +239,7 @@
"dns_bootstrap": "Bootstrap DNS",
"dns_bootstrap_hint": "Used to resolve remote DNS domains (e.g. dns.google). Prefer a directly reachable DNS IP such as 223.5.5.5.",
"download_update": "Download Update Now",
"tagline": "Cross-platform Game Accelerator",
"tagline": "A game accelerator specially designed for enhancing gaming experience",
"preferences": "Preferences",
"theme_desc": "Choose an accent color that matches your style.",
"dns_flush_failed": "Failed to flush DNS cache",
+1 -1
View File
@@ -239,7 +239,7 @@
"dns_bootstrap": "Bootstrap DNS",
"dns_bootstrap_hint": "用于解析远端 DNS 域名(例如 dns.google)。推荐填写可直连的 DNS IP,如 223.5.5.5。",
"download_update": "立即下载更新",
"tagline": "跨平台游戏加速器",
"tagline": "一款专为游戏体验打造的游戏加速器",
"preferences": "偏好设置",
"theme_desc": "选择符合您风格的主题色。",
"dns_flush_failed": "清理 DNS 缓存失败",
+3 -3
View File
@@ -69,18 +69,18 @@ describe('Protocol Parsing', () => {
expect(result).not.toBeNull()
expect(result?.type).toBe('vmess')
expect(result?.server).toBe('planb.mojcn.com')
expect(result?.server_port).toBe(16617)
expect(result?.server_port).toBe(1617)
expect(result?.network).toBe('ws')
expect(result?.host).toContain('mobgslb.tbcache.com')
})
it('should parse VLESS reality link with pbk/sid/sni/fp', () => {
const link = 'vless://13a3abd8-6315-4735-b3a2-39f38a2e4f3d@156.246.93.26:38073?encryption=none&security=reality&flow=xtls-rprx-vision&type=tcp&sni=www.paypal.com&pbk=DrpIgSOtaEHqJywmydYjljWB9FD_1PlFjQIAlbHiOgk&fp=chrome#233boy-reality-156.246.93.26'
const link = 'vless://13a3abd8-6315-4735-b3a2-39f38a2e4f3d@156.246.93.1:38073?encryption=none&security=reality&flow=xtls-rprx-vision&type=tcp&sni=www.paypal.com&pbk=DrpIgSOtaEHqJywmydYjljWB9FD_1PlFjQIAlbHiOgk&fp=chrome#233boy-reality-156.246.1.26'
const result = parseShareLink(link)
expect(result).not.toBeNull()
expect(result?.type).toBe('vless')
expect(result?.server).toBe('156.246.93.26')
expect(result?.server).toBe('156.246.93.1')
expect(result?.server_port).toBe(38073)
expect(result?.security).toBe('reality')
expect(result?.flow).toBe('xtls-rprx-vision')
+1 -1
View File
@@ -311,7 +311,7 @@ describe('generateSingboxConfig', () => {
})
it('should generate VLESS reality outbound from share link', () => {
const link = 'vless://13a3abd8-6315-4735-b3a2-39f38a2e4f3d@156.246.93.26:38073?encryption=none&security=reality&flow=xtls-rprx-vision&type=tcp&sni=www.paypal.com&pbk=DrpIgSOtaEHqJywmydYjljWB9FD_1PlFjQIAlbHiOgk&fp=chrome#233boy-reality-156.246.93.26'
const link = 'vless://13a3abd8-6315-4735-b3a2-39f38a2e4f3d@156.246.1.26:38073?encryption=none&security=reality&flow=xtls-rprx-vision&type=tcp&sni=www.paypal.com&pbk=DrpIgSOtaEHqJywmydYjljWB9FD_1PlFjQIAlbHiOgk&fp=chrome#233boy-reality-156.246.1.26'
const node = parseShareLink(link)
expect(node).not.toBeNull()
const config = JSON.parse(generateSingboxConfig(mockGame, node as NodeConfig))