MCPcopy Index your code
hub / github.com/ShouChenICU/FastSend

github.com/ShouChenICU/FastSend @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
128 symbols 254 edges 137 files 13 documented · 10%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

FastSend 文件快传 🚀

Version License: MIT

📖 项目介绍

FastSend 是一个基于 WebRTC 技术的点对点文件传输工具,支持快速的目录同步和文件传输。通过浏览器即可实现安全、高效的文件共享。

🌐 在线体验:fastsend.ing

✨ 特性

  • 🔒 点对点加密传输,确保数据安全
  • 📁 支持文件和文件夹传输
  • 🚀 局域网自动优化,传输更快
  • 🎯 简单易用的界面设计
  • 🌍 支持中英文界面
  • 📲 支持PWA轻量安装

🛠️ 技术栈

  • WebRTC
  • Vue.js
  • Nuxt 4
  • Pinia
  • TypeScript
  • Modern File System API

🗂️ 目录结构

项目已按 Nuxt 4 默认约定迁移为 app/ 目录结构:

  • app/:前端应用层源码,包括页面、组件、stores、composables、utils、全局样式与 app.vue
  • server/:Nitro 服务端接口与 WebSocket 信令逻辑
  • public/:静态资源与 PWA 相关文件
  • presets/:PrimeVue 主题预设

这样可以更清晰地分离前端应用层与服务端上下文,也更符合 Nuxt 4 的默认扫描方式。

📦 安装与构建

# 安装依赖
yarn install

# 构建项目
yarn build

🚀 使用方法

# 启动服务
node .output/server/index.mjs

[!IMPORTANT] 目录传输和同步需要 HTTPS 以及浏览器支持,一般新版本的桌面浏览器都支持

本项目自身的 HTTPS 配置方式(测试环境)请参考:

FastSend 不建议直接以 HTTPS 形式进行生产环境部署,而应当位于反向代理服务器之后,请参考:

🐳 Docker 和 Docker Compose

使用 Docker Hub 发行版

docker run -d --name fastsend -p 3000:3000 shouchenicu/fastsend:latest

[!CAUTION]

shouchenicu/fastsend 是此项目在 Docker Hub 上的 唯一 官方镜像!

当前已发现 12 个第三方镜像,其中5个[^1]的下载使用量高于官方镜像。请注意甄别,风险自负!

[^1]: 比如 niliaerith/fastsend

Docker 构建

docker build -t fastsend .
docker run -d --name fastsend -p 3000:3000 fastsend

Docker Compose

将项目拉取到本地,然后运行:

docker-compose up -d

访问 http://localhost:3000 即可使用。

💡 使用提示

  1. 确保浏览器启用了 WebRTC 功能
  2. 如需传输文件夹或同步目录,请确保浏览器支持现代文件系统 API 并已启用 HTTPS 传输
  3. 在同一局域网内传输速度最快
  4. 建议在网络状态良好时使用,部分网络环境可能会阻止 P2P / WebRTC 正确建立连接,从而导致传输失败

👨‍💻 作者

ShouChen

🤝 贡献

欢迎提交 Issue 和 Pull Request!

Contributors

📝 开源协议

本项目基于 MIT 协议开源。

⭐ 支持项目

如果这个项目对你有帮助,欢迎给一个 star 支持一下!


Star History Chart

Extension points exported contracts — how you extend this code

PeerDataChannelConfig (Interface)
* PeerDataChannel 配置类
app/utils/PeerDataChannel.ts
BeforeInstallPromptEvent (Interface)
(no doc)
app/types/global.d.ts
Window (Interface)
(no doc)
app/types/global.d.ts
UserInfo (Interface)
(no doc)
app/types/transfer.ts
FlatFileItem (Interface)
(no doc)
app/types/transfer.ts
FilesPayload (Interface)
(no doc)
app/types/transfer.ts

Core symbols most depended-on inside this repo

sendData
called by 13
app/utils/PeerDataChannel.ts
dispose
called by 9
app/stores/recipientTransfer.ts
getPathSegment
called by 6
app/stores/recipientTransfer.ts
disposePeer
called by 6
server/api/connect.ts
dispose
called by 5
app/utils/PeerDataChannel.ts
dispose
called by 5
app/stores/senderTransfer.ts
createMessageState
called by 4
app/types/transfer.ts
applyTransferSelection
called by 4
app/stores/home.ts

Shape

Function 96
Method 16
Interface 12
Class 4

Languages

TypeScript100%

Modules by API surface

app/utils/PeerDataChannel.ts21 symbols
app/stores/recipientTransfer.ts18 symbols
app/types/transfer.ts16 symbols
app/utils/index.ts13 symbols
app/stores/senderTransfer.ts10 symbols
server/api/connect.ts9 symbols
app/stores/user.ts9 symbols
app/utils/files.ts8 symbols
app/stores/home.ts8 symbols
server/utils/TransCount.ts3 symbols
app/stores/transferConfig.ts3 symbols
app/stores/app.ts3 symbols

For agents

$ claude mcp add FastSend \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact