# P2P传输宝
**Repository Path**: elfbobo_admin_admin/p2p-transfer-gem
## Basic Information
- **Project Name**: P2P传输宝
- **Description**: 点对点传输:专注于P2P技术的开源项目,实现高效、安全的数据交换与共享,支持多平台应用,适用于文件传输、即时通讯等场景。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-11-24
- **Last Updated**: 2025-11-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🚀 P2P Transfer Gem - 点对点传输宝石



**一款安全、高效、跨平台的点对点文件传输工具**
[功能特性](#-功能特性) • [快速开始](#-快速开始) • [使用指南](#-使用指南) • [技术架构](#-技术架构) • [开发文档](#-开发文档)
---
## ✨ 功能特性
### 🔐 安全加密
- **端到端加密**:使用AES-256加密,数据传输过程完全保密
- **无需账号**:无需注册登录,无中心服务器存储用户数据
- **临时配对**:连接码自动过期,防止未授权访问
### ⚡ 高速传输
- **P2P直连**:无需服务器中转,充分利用带宽
- **局域网优化**:自动识别并使用局域网直连,速度可达100MB/s+
- **断点续传**:传输中断后可继续,不必重新开始
### 🌍 跨平台支持
- **Windows 10/11**:原生支持(主要开发平台)
- **macOS 10.15+**:完美兼容
- **Linux**:支持主流发行版
### 🎯 简单易用
- **拖拽传输**:直接拖拽文件到窗口即可发送
- **连接码配对**:6位数字连接码,简单好记
- **历史记录**:自动保存传输记录,方便追溯
---
## 🚀 快速开始
### 下载安装
#### Windows用户
1. 从 [Releases](https://gitee.com/banfoguan/p2p-transfer-gem/releases) 下载 `P2P-Transfer-Gem-Setup-1.0.0.exe`
2. 双击安装文件,按提示完成安装
3. 启动应用,开始传输!
#### macOS用户
1. 下载 `P2P-Transfer-Gem-1.0.0.dmg`
2. 打开DMG文件,将应用拖到"应用程序"文件夹
3. 首次运行需要在"系统偏好设置→安全性与隐私"中允许
#### Linux用户
1. 下载 `P2P-Transfer-Gem-1.0.0.AppImage`
2. 添加执行权限:`chmod +x P2P-Transfer-Gem-1.0.0.AppImage`
3. 双击运行
### 第一次传输
#### 发送文件
1. 打开应用,点击"生成连接码"
2. 将显示的6位数字告诉接收方(如:123456)
3. 等待对方连接成功
4. 拖拽文件到窗口,或点击"选择文件"
5. 确认发送,等待传输完成
#### 接收文件
1. 打开应用,点击"连接到对方"
2. 输入对方提供的6位连接码
3. 连接成功后,等待对方发送文件
4. 选择保存位置,开始接收
---
## 📖 使用指南
### 连接方式
#### 方式1:连接码配对(推荐)
适用于任何网络环境,包括跨公网传输。
```
发送方:生成连接码 → 123456
接收方:输入连接码 → 123456 → 连接成功
```
#### 方式2:局域网发现
适用于同一WiFi或有线网络下的设备。
```
1. 两台设备连接到同一局域网
2. 应用自动扫描并显示可用设备
3. 点击设备名称,直接连接
```
### 高级功能
#### 文件夹传输
- 直接拖拽整个文件夹到应用窗口
- 保持原有目录结构
- 自动压缩传输(可选)
#### 断点续传
- 传输中断后,再次连接会自动提示继续
- 支持暂停和恢复传输
- 已传输部分不会重复
#### 多任务管理
- 同时传输多个文件
- 队列管理,按顺序执行
- 可单独暂停、恢复、取消任务
---
## 🏗️ 技术架构
### 核心技术
- **前端**:Electron + React + TypeScript
- **P2P协议**:WebRTC DataChannel
- **NAT穿透**:STUN/TURN
- **加密算法**:AES-256-GCM + RSA-2048
- **打包工具**:electron-builder
### 项目结构
```
p2p-transfer-gem/
├── src/
│ ├── main/ # Electron主进程(P2P逻辑)
│ ├── renderer/ # React前端界面
│ └── preload/ # IPC桥接
├── docs/ # 项目文档
├── resources/ # 应用资源
└── tests/ # 测试文件
```
---
## 👨💻 开发文档
### 环境要求
- Node.js 18+
- npm 9+
- Windows 10/11 + PowerShell
### 本地开发
```powershell
# 1. 克隆仓库
git clone git@gitee.com:banfoguan/p2p-transfer-gem.git
cd p2p-transfer-gem
# 2. 安装依赖
npm install
# 3. 启动开发服务器
npm run dev
# 4. 构建生产版本
npm run build
# 5. 打包应用
npm run package:win # Windows
npm run package:mac # macOS
npm run package:linux # Linux
```
### 测试
```powershell
# 运行单元测试
npm run test
# 运行E2E测试
npm run test:e2e
# 生成覆盖率报告
npm run test:coverage
```
### 文档
- [需求文档](./需求文档.md):详细功能需求和验收标准
- [开发文档](./开发文档.md):技术实现细节和API文档
- [开发进度](./开发进度.md):任务跟踪和时间规划
---
## 🤝 贡献指南
欢迎贡献代码、报告问题或提出建议!
### 提交问题
1. 搜索现有Issue,避免重复
2. 使用Issue模板描述问题
3. 提供复现步骤和环境信息
### 贡献代码
1. Fork本仓库
2. 创建特性分支:`git checkout -b feature/your-feature`
3. 提交更改:`git commit -m "feat: add your feature"`
4. 推送分支:`git push origin feature/your-feature`
5. 提交Pull Request
### 代码规范
- 使用TypeScript编写代码
- 遵循ESLint规则
- 添加必要的注释(中文)
- 编写单元测试
---
## 📜 开源协议
本项目采用 [MIT License](LICENSE) 协议开源。
---
## 📞 联系方式
- **邮箱**:18945985188@163.com
- **Gitee**:https://gitee.com/banfoguan/p2p-transfer-gem
- **问题反馈**:[提交Issue](https://gitee.com/banfoguan/p2p-transfer-gem/issues)
---
## 🌟 致谢
感谢以下开源项目:
- [Electron](https://www.electronjs.org/)
- [React](https://reactjs.org/)
- [WebRTC](https://webrtc.org/)
- [simple-peer](https://github.com/feross/simple-peer)
---
**如果觉得项目有用,请给个 ⭐ Star 支持一下!**
Made with ❤️ by TaoDeepX