# newpi **Repository Path**: openus/newpi ## Basic Information - **Project Name**: newpi - **Description**: 高性能、可视化、跨平台的多线程下载工具 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-26 - **Last Updated**: 2026-04-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NewPI 下载器

NewPI Logo

高性能、可视化、跨平台的多线程下载工具

Go Vue3 Wails Platform

--- ## 界面预览 ### 主界面

主界面

- 侧边栏分类导航:全部 / 下载中 / 排队中 / 已完成 - 任务卡片实时显示:文件名、进度条、下载速度、线程数 - 一键暂停 / 删除操作 - 全局搜索任务 - 主打体积小,不用安装 ### 任务详情 - 分段进度可视化

任务详情

- 每个分段独立进度条和状态 - 实时显示每段下载大小和速度 - 8 线程并行下载可视化 --- ## 核心特性 ### 多线程分段下载 - 支持 1-32 线程并行下载 - 智能分段策略:根据速度动态调整分段大小 - 小文件自动降级单线程(< 64KB) ### 五大提速技术 | 技术 | 说明 | |------|------| | **连接池复用** | 全局 HTTP 连接池,MaxIdleConns=100,减少 TCP 握手开销 | | **HTTP/2 多路复用** | 单连接并行传输多个请求,提升同服务器下载效率 | | **智能分段策略** | 速度探测 + 动态调整,快的分段保持,慢的分段拆分 | | **CDN 智能选择** | 自动探测 CDN 节点,选择最快的服务器 | | **多源镜像下载** | 支持多镜像源,按速度比例分配分段下载任务 | ### 断点续传 - 每 500ms 自动保存下载状态 - 程序崩溃/重启后可从断点恢复 - 检测临时文件大小确定断点位置 ### 任务排队调度 - 超过最大并发数自动排队 - 下载完成/暂停/删除后自动按 FIFO 启动排队任务 - 支持全局最大并发数设置 ### 全局速度限制 - 基于令牌桶算法的精确限速 - 运行时可动态调整速率 - 0 表示不限速 --- ## 技术架构 ``` NewPI 下载器 ├── 后端 (Go) │ ├── internal/downloader/ # 下载核心引擎 │ │ ├── manager.go # 下载管理器(调度、并发控制) │ │ ├── task.go # 任务模型(分段、状态、锁) │ │ ├── cdn.go # CDN 智能选择 │ │ └── mirror.go # 多源镜像下载 │ ├── internal/speedlimit/ # 令牌桶限速器 │ └── internal/storage/ # JSON 状态持久化 │ └── 前端 (Vue3 + TypeScript) ├── Pinia 状态管理 ├── 实时事件驱动更新 └── 现代化暗色主题 UI ``` ### 技术栈 | 层级 | 技术 | |------|------| | 桌面框架 | Wails v2 (Go + Web 技术) | | 后端语言 | Go 1.22+ | | 前端框架 | Vue 3 Composition API | | 状态管理 | Pinia | | 构建工具 | Vite | | 样式 | CSS 变量设计系统 | --- ## 安装使用 ### 从源码构建 ```bash # 1. 安装依赖 go mod tidy cd frontend && npm install && cd .. # 2. 开发模式 wails dev # 3. 生产构建 wails build ``` ### 使用自定义 Logo 将您的应用图标放入 `frontend/src/pic/appicon.png`,然后运行: ```bash build.bat ``` --- ## 下载流程 ``` 创建任务 | v CDN 探测 -> 选择最快节点 | v 镜像源探测 -> 按速度分配分段 | v 多线程分段并行下载 | v 分段文件合并 -> 完成 ``` --- ## 项目结构 ``` newpi-client/ ├── main.go # 入口文件 ├── app.go # App 层 API ├── wails.json # Wails 配置 ├── build/ # 构建输出 │ ├── appicon.png # 应用图标 │ └── windows/ │ └── icon.ico # Windows 图标 ├── frontend/ │ ├── src/ │ │ ├── components/ # Vue 组件 │ │ ├── stores/ # Pinia 状态 │ │ ├── styles/ # CSS 设计系统 │ │ └── pic/ # 自定义 Logo 目录 │ └── wailsjs/ # Wails 桥接代码 ├── internal/ │ ├── downloader/ # 下载核心 │ ├── speedlimit/ # 限速模块 │ └── storage/ # 状态持久化 └── doc/ # 文档图片 ``` --- ## 许可证 MIT License ---

NewPI 下载器 - 让下载更快、更稳、更可控