most-box 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,73 +1,156 @@
1
- # MostBox
2
-
3
- P2P 文件分享应用。基于 Hyperswarm/Hyperdrive 的去中心化文件分发。
4
-
5
- ## 安装
6
-
7
- ```bash
8
- npm i -g most-box
9
- ```
10
-
11
- ## 运行
12
-
13
- ```bash
14
- most-box
15
- ```
16
-
17
- 浏览器访问 `http://127.0.0.1:1976`
18
-
19
- ## 开发
20
-
21
- ```bash
22
- git clone https://github.com/your-username/most.git
23
- cd most
24
- npm install
25
- npm run dev
26
- ```
27
-
28
- ## 三种访问场景
29
-
30
- | 场景 | 启动方式 | 访问地址 |
31
- |------|----------|----------|
32
- | 本地 | `most-box` | `http://127.0.0.1:1976` |
33
- | 内网 | `set MOSTBOX_HOST=0.0.0.0 && most-box` | `http://<IP>:1976` |
34
- | 外网 | Caddy 反向代理 | `https://your-domain.com` |
35
-
36
- ### 内网访问
37
-
38
- ```bash
39
- set MOSTBOX_HOST=0.0.0.0
40
- most-box
41
- ```
42
-
43
- ### 外网访问(Caddy)
44
-
45
- ```caddy
46
- mostbox.example.com {
47
- reverse_proxy localhost:1976
48
- }
49
- ```
50
-
51
- ## 核心功能
52
-
53
- 1. **确定性 P2P 文件发布**
54
- - 采用标准 IPFS UnixFS Chunking 算法计算 CID v1
55
- - 相同文件生成一致的 CID 链接
56
-
57
- 2. **大文件流式传输**
58
- - 支持 GB 级别超大文件的发布与下载
59
-
60
- 3. **完整性校验**
61
- - 下载完成后自动验证 CID,防止数据篡改
62
-
63
- ## 技术栈
64
-
65
- - **Hyperswarm** — P2P 网络发现与连接
66
- - **Hyperdrive** — 分布式文件存储
67
- - **Corestore** — Hypercore 存储管理
68
- - **IPFS UnixFS Importer** — CID 计算
69
- - **Node.js HTTP** — 零依赖的 HTTP + WebSocket 服务
70
-
71
- ## 许可证
72
-
73
- MIT
1
+ # MostBox 文件管理
2
+
3
+ [![npm version](https://img.shields.io/npm/v/most-box)](https://npmjs.com/package/most-box)
4
+ [![Node.js version](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)
5
+ [![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
6
+
7
+ > P2P 文件分享应用。基于 Hyperswarm/Hyperdrive 的去中心化文件分发。
8
+
9
+ ## 为什么用 MostBox?
10
+
11
+ | 特性 | MostBox | 微信/QQ | 网盘 |
12
+ | ------------------- | ------- | ------- | ---- |
13
+ | 🔒 无需注册 | ✅ | ❌ | ❌ |
14
+ | 🚀 P2P直连,不限速 | ✅ | ❌ | 限流 |
15
+ | 💾 去中心化存储 | ✅ | ❌ | ❌ |
16
+ | 🌐 开源免费,自托管 | ✅ | ❌ | ❌ |
17
+ | 📦 无限文件大小 | ✅ | ❌ | 限流 |
18
+
19
+ ## 演示
20
+
21
+ 在线体验:[Most.Box](https://Most.Box)
22
+
23
+ ## 🚀 立即使用
24
+
25
+ 打开终端,运行:
26
+
27
+ ```bash
28
+ npx most-box
29
+ ```
30
+
31
+ 浏览器自动访问 **http://127.0.0.1:1976**
32
+
33
+ ## 需求
34
+
35
+ - Node.js >= 18 ([下载地址](https://nodejs.org))
36
+
37
+ ## 开发
38
+
39
+ ```bash
40
+ git clone <your-repo-url>
41
+ cd most
42
+ npm i
43
+ npm start
44
+ ```
45
+
46
+ ## 测试
47
+
48
+ ```bash
49
+ npm test # 运行全部测试
50
+ npm run test:unit # 只运行单元测试
51
+ ```
52
+
53
+ ## 访问场景
54
+
55
+ | 场景 | 命令 | 访问地址 |
56
+ | ---- | ------------------------------------------ | ------------------------- |
57
+ | 本地 | `npx most-box` | `http://127.0.0.1:1976` |
58
+ | 内网 | `set MOSTBOX_HOST=0.0.0.0 && npx most-box` | `http://<IP>:1976` |
59
+ | 外网 | Caddy 反向代理 | `https://your-domain.com` |
60
+
61
+ ### 内网访问
62
+
63
+ ```bash
64
+ set MOSTBOX_HOST=0.0.0.0
65
+ npx most-box
66
+ ```
67
+
68
+ ### 外网访问(Caddy)
69
+
70
+ ```caddy
71
+ mostbox.example.com {
72
+ reverse_proxy localhost:1976
73
+ }
74
+ ```
75
+
76
+ ## 核心功能
77
+
78
+ 1. **确定性 P2P 文件发布**
79
+ - 采用标准 IPFS UnixFS Chunking 算法计算 CID v1
80
+ - 相同文件生成一致的 CID 链接
81
+
82
+ 2. **大文件流式传输**
83
+ - 支持 GB 级别超大文件的发布与下载
84
+
85
+ 3. **完整性校验**
86
+ - 下载完成后自动验证 CID,防止数据篡改
87
+
88
+ 4. **自定义 most:// 链接**
89
+ - 分享文件生成 `most://<cid>` 格式链接
90
+ - 接收方通过链接直接下载,无需其他配置
91
+
92
+ ## 常见问题
93
+
94
+ ### 文件存储在哪里?
95
+
96
+ 文件以 **P2P 方式** 存储在分享者和接收者的设备上。当文件被分享时,内容会被分片存储在 P2P 网络中。**没有中心化服务器**,真正实现去中心化。
97
+
98
+ ### 如何分享文件给其他人?
99
+
100
+ 1. 打开 MostBox Web 界面
101
+ 2. 上传文件或文件夹
102
+ 3. 点击「复制链接」获取 `most://<cid>` 链接
103
+ 4. 将链接发送给接收者
104
+
105
+ ### most:// 链接是什么?
106
+
107
+ `most://` 是 MostBox 自定义的协议链接,格式为 `most://<cid>`。接收方安装 MostBox 后,点击链接即可自动下载文件。
108
+
109
+ ### 支持大文件吗?
110
+
111
+ 支持。目前已测试通过 **GB 级别**的大文件传输,采用流式处理,内存占用低。
112
+
113
+ ### 如何在其他设备上下载文件?
114
+
115
+ 确保设备已安装 Node.js >= 18,然后运行:
116
+
117
+ ```bash
118
+ npx most-box
119
+ ```
120
+
121
+ 浏览器访问 `http://127.0.0.1:1976`,输入链接即可下载。
122
+
123
+ ## 路线图
124
+
125
+ ### v1.0(当前版本)
126
+
127
+ - ✅ P2P 文件上传与下载
128
+ - ✅ 确定性 CID 生成
129
+ - ✅ 大文件流式传输
130
+ - ✅ most:// 链接分享
131
+ - ✅ Web UI 界面
132
+
133
+ ### 长期规划
134
+
135
+ - [ ] 浏览器扩展
136
+ - [ ] 移动端支持(iOS/Android)
137
+ - [ ] 桌面客户端
138
+
139
+ ## 技术栈
140
+
141
+ - **Hyperswarm** — P2P 网络发现与连接
142
+ - **Hyperdrive** — 分布式文件存储
143
+ - **Corestore** — Hypercore 存储管理
144
+ - **IPFS UnixFS Importer** — CID 计算
145
+ - **Node.js HTTP** — 零依赖的 HTTP + WebSocket 服务
146
+ - **React** — Web UI
147
+
148
+ ## 社区
149
+
150
+ - **微信**:微信号 `most-box`(自动通过好友申请)
151
+ - **GitHub Discussions**:[提出需求 & 技术讨论](../../discussions)
152
+ - **问题反馈**:[Github issues](../../issues)
153
+
154
+ ## 许可证
155
+
156
+ MIT
package/cli.js CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
2
- import './server.js';
1
+ #!/usr/bin/env node
2
+ import './server.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "most-box",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "MostBox - P2P file sharing application",
5
5
  "type": "module",
6
6
  "main": "server.js",
@@ -16,8 +16,9 @@
16
16
  ],
17
17
  "scripts": {
18
18
  "start": "npm run build && node server.js",
19
- "dev": "npm run build -- --dev --watch & node --watch server.js",
20
- "build": "node build.mjs"
19
+ "build": "node build.mjs",
20
+ "test": "node --test tests/**/*.test.js",
21
+ "test:unit": "node --test tests/unit/*.test.js"
21
22
  },
22
23
  "keywords": [
23
24
  "p2p",
@@ -28,6 +29,7 @@
28
29
  "license": "MIT",
29
30
  "dependencies": {
30
31
  "b4a": "^1.8.0",
32
+ "busboy": "^1.6.0",
31
33
  "corestore": "^7.9.2",
32
34
  "eventemitter3": "^5.0.4",
33
35
  "hyperdrive": "^13.3.1",
@@ -36,9 +38,11 @@
36
38
  "lucide-react": "^1.7.0",
37
39
  "multiformats": "^13.4.2",
38
40
  "react": "^19.2.4",
39
- "react-dom": "^19.2.4"
41
+ "react-dom": "^19.2.4",
42
+ "ws": "^8.20.0"
40
43
  },
41
44
  "devDependencies": {
42
- "esbuild": "^0.27.4"
45
+ "esbuild": "^0.27.4",
46
+ "supertest": "^7.0.0"
43
47
  }
44
48
  }