# 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 下载器
高性能、可视化、跨平台的多线程下载工具
---
## 界面预览
### 主界面
- 侧边栏分类导航:全部 / 下载中 / 排队中 / 已完成
- 任务卡片实时显示:文件名、进度条、下载速度、线程数
- 一键暂停 / 删除操作
- 全局搜索任务
- 主打体积小,不用安装
### 任务详情 - 分段进度可视化
- 每个分段独立进度条和状态
- 实时显示每段下载大小和速度
- 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 下载器 - 让下载更快、更稳、更可控