{"id":50430535,"url":"https://github.com/xynrin/langive","last_synced_at":"2026-05-31T14:01:39.422Z","repository":{"id":360189612,"uuid":"1248761915","full_name":"Xynrin/LanGive","owner":"Xynrin","description":"about lan tool.you can use it transfet files and download files.support resumable at breakpoint.","archived":false,"fork":false,"pushed_at":"2026-05-25T10:47:18.000Z","size":121,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T12:27:44.290Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xynrin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-25T03:01:29.000Z","updated_at":"2026-05-25T10:46:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Xynrin/LanGive","commit_stats":null,"previous_names":["xynrin/langive"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Xynrin/LanGive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xynrin%2FLanGive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xynrin%2FLanGive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xynrin%2FLanGive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xynrin%2FLanGive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xynrin","download_url":"https://codeload.github.com/Xynrin/LanGive/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xynrin%2FLanGive/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33733754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T14:01:37.717Z","updated_at":"2026-05-31T14:01:39.400Z","avatar_url":"https://github.com/Xynrin.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"text-align: center;\"\u003e\n  \u003cimg src=\"./assets/logo.jpg\" width=\"150\" /\u003e\n\u003c/div\u003e\n\n# LanGive\n\n一款基于 mDNS 协议的跨平台局域网文件传输工具，支持 Windows、macOS、Linux、iOS 和 Android。\n\n![License](https://img.shields.io/badge/license-GPLv3-blue.svg)\n![Version](https://img.shields.io/badge/version-1.0.0-green.svg)\n![Go](https://img.shields.io/badge/Go-1.23-blue.svg)\n![Wails](https://img.shields.io/badge/Wails-v2-orange.svg)\n\n## 特性\n\n- 🔍 **自动发现** - 基于 mDNS 协议自动发现局域网内的设备\n- 🔒 **会话隔离** - 公共会话与隐私模式，保护你的传输安全\n- 📁 **文件传输** - 支持文件和文件夹的快速传输\n- 🖥️ **跨平台** - 支持 Windows、macOS、Linux、iOS 和 Android\n- 🔄 **实时进度** - 传输进度实时显示\n- 📝 **自定义设备名** - 支持自定义在局域网中显示的设备名称\n- 🆕 **自动更新** - 支持版本检查和自动更新\n- ⚡ **会话续接** - 后台运行时自动降低扫描频率，节省资源\n\n## 系统要求\n\n### 桌面端\n\n- Windows 10/11 (amd64, x86, arm64)\n- macOS 10.15+ (Intel/Apple Silicon)\n- Linux (amd64, x86, arm64)\n\n### 移动端\n\n- iOS 14+ (arm64)\n- Android 7.0+ (arm64, x86, x86_64)\n\n## 快速开始\n\n### 安装\n\n前往 [Releases](https://github.com/Xynrin/LanGive/releases) 页面下载对应平台的安装包：\n\n**桌面端**\n| 平台 | 架构 | 下载格式 |\n|------|------|----------|\n| Windows | amd64/x86/arm64 | `.exe` (NSIS) |\n| macOS | Intel/Apple Silicon | `.app` / `.zip` |\n| Linux | amd64/x86/arm64 | AppImage / deb / RPM |\n\n**移动端**\n\n- **Android**: 下载 `LanGive-android-*.apk`\n- **iOS**: 通过 TestFlight 安装（即将推出）\n\n### 使用\n\n1. 在需要传输文件的设备上启动 LanGive\n2. 在\"设备\"页面查看发现的设备\n3. 选择目标设备并点击\"发送\"\n4. 选择要发送的文件或文件夹\n5. 等待传输完成\n\n## 开发\n\n### 环境要求\n\n- Go 1.23+\n- Node.js 20+\n- Wails CLI v2\n\n### 安装依赖\n\n```bash\n# 安装 Wails\ngo install github.com/wailsapp/wails/v2/cmd/wails@latest\n\n# 安装前端依赖\ncd frontend\nnpm install\n```\n\n### 开发模式\n\n```bash\nwails dev\n```\n\n### 构建\n\n```bash\n# 构建当前平台\nwails build\n\n# 构建特定平台\nwails build -platform windows/amd64\nwails build -platform darwin/arm64\nwails build -platform linux/amd64\n```\n\n## 项目结构\n\n```\nLanGive/\n├── main.go                    # 应用入口\n├── app.go                     # Wails 应用逻辑\n├── wails.json                # Wails 配置\n├── go.mod                    # Go 模块\n│\n├── internal/                  # 内部包\n│   ├── config/               # 配置管理\n│   │   └── config.go\n│   ├── mdns/                 # mDNS 服务发现\n│   │   └── mdns.go\n│   ├── transfer/             # 文件传输\n│   │   └── transfer.go\n│   ├── security/              # 安全与会话\n│   │   ├── security.go\n│   │   └── token.go\n│   └── updater/              # 自动更新\n│       └── updater.go\n│\n├── frontend/                  # 前端代码\n│   ├── src/\n│   │   ├── components/       # Vue 组件\n│   │   │   └── Sidebar.vue\n│   │   ├── views/            # 页面视图\n│   │   │   ├── Home.vue\n│   │   │   ├── Devices.vue\n│   │   │   ├── Transfers.vue\n│   │   │   └── Settings.vue\n│   │   ├── router/           # 路由配置\n│   │   │   └── index.js\n│   │   ├── App.vue\n│   │   ├── main.js\n│   │   └── style.css\n│   ├── index.html\n│   ├── package.json\n│   └── vite.config.js\n│\n├── mobile/                    # 移动端代码\n│   ├── android/              # Android 项目\n│   └── ios/                  # iOS 项目\n│\n├── assets/                    # 静态资源\n│   └── logo.jpg\n│\n├── docs/                     # 文档\n│   └── SPEC.md               # 详细设计文档\n│\n├── build/                    # 构建输出\n│   └── bin/\n│\n└── .github/\n    └── workflows/            # CI/CD 配置\n        └── release.yml\n```\n\n## 技术栈\n\n| 类别     | 技术                       |\n| -------- | -------------------------- |\n| 后端     | Go                         |\n| 前端     | Vue 3 + Vue Router + Pinia |\n| UI 框架  | Wails v2                   |\n| 服务发现 | mDNS (hashicorp/mdns)      |\n| 文件传输 | TCP + HTTP                 |\n| 构建     | GitHub Actions             |\n\n## 架构设计\n\n### 模块划分\n\n1. **设备发现模块** (`internal/mdns/`)\n   - mDNS 服务注册与发现\n   - 设备状态管理\n   - TXT 记录解析\n\n2. **传输模块** (`internal/transfer/`)\n   - TCP 连接管理\n   - 文件分段传输\n   - ZIP 打包发送\n\n3. **安全模块** (`internal/security/`)\n   - 会话管理\n   - Token 验证\n   - 隐私模式\n\n4. **配置模块** (`internal/config/`)\n   - JSON 配置读写\n   - 跨平台路径处理\n\n5. **更新模块** (`internal/updater/`)\n   - Git 版本检查\n   - 下载与安装\n\n## 隐私与会话\n\n### 公共会话\n\n- 默认加入公共会话\n- 所有未开启隐私模式的设备可见\n- 适合家庭、办公等信任环境\n\n### 隐私模式\n\n- 不在公共会话中广播\n- 只能通过 IP 直接连接\n- 适合公共 WiFi 等敏感环境\n\n## License\n\n本项目采用 [GPL-V3](LICENSE) 协议开源。\n\n## 致谢\n\n- [Wails](https://wails.io/) - 跨平台桌面应用框架\n- [hashicorp/mdns](https://github.com/hashicorp/mdns) - mDNS 库\n- [Vue.js](https://vuejs.org/) - 前端框架\n- [Gin](https://gin-gonic.com/) - HTTP web 框架\n\n---\n\n_LanGive - 让局域网文件传输变得简单_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxynrin%2Flangive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxynrin%2Flangive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxynrin%2Flangive/lists"}