back to home

HuLaSpark / HuLa

🍀 A cross-platform instant messaging desktop application with exceptional performance built on Rust + Vue3, compatible with Windows, macOS, Linux, Android, and iOS(一款基于Rust+Vue3极致性能的跨平台即时通讯桌面应用,兼容Windows、MacOS、Linux、Android、IOS)

6,913 stars
919 forks
21 issues
VueTypeScriptRust

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing HuLaSpark/HuLa in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind-ai.vercel.app/repo/HuLaSpark/HuLa)
Preview:Analyzed by RepoMind

Repository Summary (README)

Preview
<p align="center"> <img width="350px" height="150px" src="public/hula.png"/> </p> <p align="center">一款基于Tauri、Vite 7、Vue 3 和 TypeScript 构建的即时通讯系统</p> <div align="center"> <a href="https://trendshift.io/repositories/15187" target="_blank"> <img src="https://trendshift.io/api/badge/repositories/15187" alt="HuLaSpark%2FHuLa | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/> </a> <a href="https://hellogithub.com/repository/743b101346c54f6cb5c20eed2edbaa40" target="_blank"> <img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=743b101346c54f6cb5c20eed2edbaa40&claim_uid=WsQaY6SlnL7qxG3&theme=neutral" alt="Featured|HelloGitHub" style="width: 250px; height: 54px;" width="250" height="54" /> </a> </div> <br> <div align="center"> <p> <a href="https://gitee.com/HulaSpark/HuLa/stargazers"> <img src="https://gitee.com/HulaSpark/HuLa/badge/star.svg?theme=gvp" alt="Gitee Stars"> </a> <a href="https://github.com/HulaSpark/HuLa/stargazers"> <img src="https://img.shields.io/github/stars/HulaSpark/HuLa?style=social" alt="GitHub Stars"> </a> <a href="https://gitcode.com/HuLaSpark/HuLa"> <img src="https://gitcode.com/HuLaSpark/HuLa/star/badge.svg" alt="GitCode Stars"> </a> <a href="https://gitcode.com/HuLaSpark/HuLa"> <img src="https://atomgit.com/HuLaSpark/HuLa/star/2025top.svg" alt="2025百大开源项目"> </a> </p> </div> <br> <div align="center"> <p> <a href="https://deepwiki.com/HuLaSpark/HuLa"> <img src="https://deepwiki.com/badge.svg" alt="DeepWiki"> </a> <a href="https://app.fossa.com/projects/git%2Bgithub.com%2FHuLaSpark%2FHuLa?ref=badge_shield"> <img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2FHuLaSpark%2FHuLa.svg?type=shield" alt="FOSSA Status"> </a> <a href="https://www.bestpractices.dev/zh-CN/projects/9692"> <img src="https://bestpractices.coreinfrastructure.org/projects/9692/badge" alt="CII Best Practices"> </a> <a href="https://hulaspark.com"> <img src="public/hulaspark-badge.svg" alt="HuLaSpark"> </a> <a href="https://discord.gg/WhSkvhNEeE"> <img src="https://img.shields.io/badge/-Discord-5865F2?logo=discord&logoColor=white&labelColor=555555" alt="Discord"> </a> </p> </div> <br> <!-- 🛠️ 技术栈 --> <div align="center"> <p> <img src="https://img.shields.io/badge/Vue3-35495E?logo=vue.js&logoColor=4FC08D"> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=fff"> <img src="https://img.shields.io/badge/Vite7-646CFF?logo=vite&logoColor=fff"> <img src="https://img.shields.io/badge/Tauri-24C8DB?logo=tauri&logoColor=FFC131"> <img src="https://img.shields.io/badge/Rust-c57c54?logo=rust&logoColor=E34F26"> <img src="https://img.shields.io/badge/UnoCss-333333?logo=unocss&logoColor=fff"> <img src="https://img.shields.io/badge/Sass-CC6699?logo=sass&logoColor=fff"> <img src="https://img.shields.io/badge/pnpm-F69220?logo=pnpm&logoColor=fff"> </p> </div> <br> <!-- 🔗 快速链接 --> <div align="center"> <h3>🔗 快速链接</h3> <p> 💻 <strong>官网:</strong><a href="https://hulaspark.com">HuLaSpark</a> | 📝 <strong>启动文档:</strong><a href="docs/project_guide.md">环境配置及其启动教程</a> | ☕️ <strong>服务端:</strong><a href="https://github.com/HulaSpark/HuLa-Server">GitHub</a> / <a href="https://gitee.com/HulaSpark/HuLa-Server">Gitee</a> | 💬 <strong>微信:</strong><code>cy2439646234</code> </p> </div> <p align="center"> 中文 | <a href="README.en.md">English</a> | <!-- Keep these links. Translations will automatically update with the README. --> <a href="https://www.readme-i18n.com/HuLaSpark/HuLa?lang=de">Deutsch</a> | <a href="https://www.readme-i18n.com/HuLaSpark/HuLa?lang=es">Español</a> | <a href="https://www.readme-i18n.com/HuLaSpark/HuLa?lang=fr">français</a> | <a href="https://www.readme-i18n.com/HuLaSpark/HuLa?lang=ja">日本語</a> | <a href="https://www.readme-i18n.com/HuLaSpark/HuLa?lang=ko">한국어</a> | <a href="https://www.readme-i18n.com/HuLaSpark/HuLa?lang=pt">Português</a> | <a href="https://www.readme-i18n.com/HuLaSpark/HuLa?lang=ru">Русский</a> </p>

🌐 支持平台

平台支持版本
WindowsWindows 10, Windows 11
macOSmacOS 10.5+ Mac26已支持
LinuxUbuntu 22.0+
iOSiOS 9.0+ (iOS26 真机已支持, Tauri不支持Intel芯片在ios26模拟器上运行)
AndroidAndroid 12+ (SDK30+)
Web⚠️暂不支持(需要自定义移除对桌面功能)

📝 项目介绍

HuLa 是一款基于 Tauri、Vite 7、Vue 3 和 TypeScript 构建的即时通讯系统。它利用了 Tauri 的跨平台能力和 Vue 3 的响应式设计,结合了 TypeScript 的类型安全特性和 Vite 7 的快速构建,为用户提供了一个高效、安全和易用的通讯解决方案。

🛠️ 技术栈

  • Tauri: 为本项目提供了一款轻量级的、高性能的桌面应用容器,使得我们可以使用前端技术栈来开发跨平台的桌面应用。Tauri 的设计哲学是在保证安全性的前提下,尽可能减少资源占用。
  • Vite 7: Vite 是一个现代化的前端构建工具,它利用原生 ES 模块导入的能力来提供一个快速的开发服务器,与此同时,它也为生产环境打包提供了强大的支持。Vite 7 是其最新的版本,带来了更多的优化和特性。
  • Vue 3: Vue 3 是一个渐进式JavaScript框架,用于构建用户界面。它的组合式API、更好的TypeScript集成和对移动端的优化使得开发复杂的单页应用变得更加简单和高效。
  • TypeScript: TypeScript 是 JavaScript 的一个超集,它在 JavaScript 的基础上增加了类型系统。这让我们能够在开发过程中捕获更多的错误,并且提供更好的编辑器支持。

🖼️ 项目预览

<div align="center"> <h3>🎨 界面展示</h3> </div> <!-- 主界面展示 --> <div align="center"> <h4>PC端界面展示,有其他功能未在介绍截图内,请自行下载体验 🙏</h4> </div> <div align="center"> <img src="preview/img2-1.webp" alt="img2-1" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-2.webp" alt="img2-2" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-3.webp" alt="img2-3" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-4.webp" alt="img2-4" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-5.webp" alt="img2-5" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-6.webp" alt="img2-6" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-7.webp" alt="img2-7" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-8.webp" alt="img2-8" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-9.webp" alt="img2-9" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-10.webp" alt="img2-10" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-11.webp" alt="img2-11" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-12.webp" alt="img2-12" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-13.webp" alt="img2-13" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-14.webp" alt="img2-14" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img2-15.webp" alt="img2-15" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> </div> <br/> <div align="center"> <img src="preview/img.png" alt="img-主界面" width="280" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img_1.png" alt="img-聊天对话" width="280" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img_2.png" alt="img-联系人" width="280" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img_3.png" alt="img-设置界面" width="280" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img_4.png" alt="消息功能" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;"> <img src="preview/img_5.png" alt="主题切换" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;"> <img src="preview/img_6.png" alt="表情包" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;"> <img src="preview/img_7.png" alt="群聊管理" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;"> <img src="preview/img_8.png" alt="个人设置" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;"> <img src="preview/img_9.png" alt="文件传输" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;"> </div> <div align="center"> <h4>移动端界面展示</h4> </div> <div align="center"> <img src="preview/img3-1.webp" alt="img3-1" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img3-2.webp" alt="img3-2" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img3-3.webp" alt="img3-3" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img3-4.webp" alt="img3-4" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img3-5.webp" alt="img3-5" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img3-6.webp" alt="img3-6" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> <img src="preview/img3-7.webp" alt="img3-6" width="220" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;"> </div> <br>

✨ 功能特性

<div align="center"> <h3>🎯 开发进度一览</h3> </div>

🔐 用户认证系统

功能描述状态
🔑账号密码登录完成
📱二维码扫码登录完成
💻多设备登录管理完成

💬 消息通信

功能描述状态
👤一对一私聊完成
👥群组聊天完成
↩️消息撤回完成
📢@提醒、回复功能完成
👁️消息已读状态完成
😊表情包功能完成
🖱️消息右键菜单完成
🔗链接预览卡片完成
👍消息点赞互动完成
📔历史记录管理完成

🤝 社交管理

功能描述状态
好友添加与删除完成
🔍好友搜索完成
🏢群组创建与管理完成
🟢好友在线状态完成
🎖️好友徽章系统完成
🚫屏蔽拉黑免打扰完成
📤消息转发完成
📋群公告功能完成
🏷️备注昵称管理完成
📍获取和发送位置完成
🔥扫码登录、进群完成

🎨 界面体验

功能描述状态
🖼️现代化界面设计完成
🌙深色浅色主题完成
🎭皮肤主题切换完成

🛠️ 系统功能

功能描述状态
🪟多窗口管理完成
🔔系统托盘通知完成
📷图片查看器完成
✂️截图功能进行中
🎙️语音通话完成
🎥视频通话完成
⌨️全局快捷键管理完成
📺独立媒体查看器完成
📁文件上传(七牛云)完成
🔄自动更新系统完成
🌍i18n 支持进行中

🌐 跨平台支持

功能描述状态
💻Windows/macOS/Linux完成
📱iOS/Android 适配完成

🤖 AI 集成

功能描述状态
🧠AI 聊天助手完成
🔌多平台 AI 支持完成

应用升级赞助商

<a href="https://www.toolsetlink.com"> <img height="54" alt="UpgradeLink" src="https://github.com/user-attachments/assets/6b84fb0f-3f1d-44b5-9932-2298bc999d8d" /> </a>

👏 感谢以下贡献者们!

<a href="https://openomy.com/HuLaSpark/HuLa" target="_blank" style="display: block; width: 100%;" align="center"> <img src="https://openomy.com/svg?repo=HuLaSpark/HuLa&chart=bubble&latestMonth=12" target="_blank" alt="Contribution Leaderboard" style="display: block; width: 100%;" /> </a> <br/> <a href="https://openomy.com/HuLaSpark/HuLa" target="_blank" style="display: block; width: 100%;" align="center"> <img src="https://openomy.com/svg?repo=HuLaSpark/HuLa&chart=list&latestMonth=12" target="_blank" alt="Contribution Leaderboard" style="display: block; width: 100%;" /> </a> <br/> <a href="https://openomy.com/HuLaSpark/HuLa" target="_blank" style="display: block; width: 100%;" align="center"> <img src="https://openomy.com/svg?repo=HuLaSpark/HuLa&chart=podium&latestMonth=12" target="_blank" alt="Contribution Leaderboard" style="display: block; width: 100%;" /> </a> <!-- <a href="https://github.com/HuLaSpark/HuLa/graphs/contributors"> <img src="https://contrib.rocks/image?repo=HuLaSpark/HuLa" /> </a> --> <br/>

[!NOTE] 特别感谢 @dennis9486 贡献的截图功能初版实现,代码位于 src/components/common/Screenshot.vue,为提升桌面端体验打下基础。

📥 安装与运行

# 克隆项目
git clone https://gitee.com/HuLaSpark/HuLa.git
或者
git clone https://github.com/HuLaSpark/HuLa.git

# 进入项目目录
cd HuLa

# 安装依赖
pnpm install

# 运行开发服务器
pnpm run tauri:dev

# 构建生产版本
pnpm run tauri:build

⚠️ 注意事项(macOS用户)

网页上下载安装包会提示安装包已损坏,可能会遇到证书问题,这是因为 macOS 系统的安全机制导致的。请按照以下步骤解决:

1. 打开 "系统设置" - "安全性与隐私",如图勾选:允许 "任何来源" 下载的 App 运行:

<div align="center"> <img src="preview/img_10.png" alt="img_10.png" /> </div>

2. 如果还报错,请在终端执行以下命令解决:

## 安装前执行
sudo xattr -rd com.apple.quarantine 你的安装包路径/下载的安装包名称
## 如果已经安装,则执行下面
sudo xattr -r -d com.apple.quarantine /Applications/应用名称.app

📋 提交规范

执行 pnpm run commit 唤起 git commit 交互,根据提示完成信息的输入和选择

⚖️ 免责声明

  1. 本项目是作为一款开源项目提供的,开发者在法律允许的范围内不对软件的功能性、安全性或适用性提供任何形式的明示或暗示的保证
  2. 用户明确理解并同意,使用本软件的风险完全由用户自己承担,软件以"现状"和"现有"基础提供。开发者不提供任何形式的担保,无论是明示还是暗示的,包括但不限于适销性、特定用途的适用性和非侵权的担保
  3. 在任何情况下,开发者或其供应商都不对任何直接的、间接的、偶然的、特殊的、惩罚性的或后果性的损害承担责任,包括但不限于使用本软件产生的利润损失、业务中断、个人信息泄露或其他商业损害或损失
  4. 所有在本项目上进行二次开发的用户,都需承诺将本软件用于合法目的,并自行负责遵守当地的法律和法规
  5. 开发者有权在任何时间修改软件的功能或特性,以及本免责声明的任何部分,并且这些修改可能会以软件更新的形式体现

本免责声明的最终解释权归开发者所有

🎁 支持项目

<h3>💝 赞助支持</h3> <p><em>如果您觉得 HuLa 对您有帮助,欢迎赞助支持,您的支持是我们不断前进的动力!</em></p> <div> <img src="preview/zs.jpg" height="240" alt="WeChat Code"> <img src="preview/zfb.png" height="240" alt="Alipay Code"> </div> <br>

💬 加入社区

<div align="center"> <h3>🤝 HuLa 社区讨论群</h3> <p><em>与开发者和用户一起交流讨论,获取最新资讯和技术支持</em></p> <p><em>使用 HuLa 移动端扫码加入下方 Issues 群,第一时间反馈问题与建议。</em></p> <div style="display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;"> <img src="preview/wx.png" width="260" height="340" alt="微信群二维码"> <img src="preview/qq.jpg" width="260" height="340" alt="QQ群二维码"> <img src="preview/HuLa-QR.png" width="315" height="315" alt="HuLa Issues 群二维码"> </div> </div>

🙏 感谢赞助者

<div align="center"> <h3>贡献者荣誉榜</h3> <p><em>感谢以下朋友对 HuLa 项目的慷慨支持!</em></p> </div>

💎 钻石赞助者 (¥1000+)

💝 日期👤 赞助者💰 金额🏷️ 平台
2025-09-12翟可¥1688微信转账

🏆 金牌赞助者 (¥100+)

💝 日期👤 赞助者💰 金额🏷️ 平台
2025-12-13M(PiDAOLab)¥500微信转账
2025-11-12¥500微信转账
2025-09-03烛火¥500微信转账
2025-09-05Orion¥200微信赞赏
2025-10-24唐勇(伏威)¥200微信赞赏
2025-08-26唐勇¥200微信赞赏
2025-04-25上官俊斌¥200微信赞赏
2025-05-27临安居士¥188微信赞赏
2025-04-20姜兴(Simon)¥188微信赞赏
2025-02-17禾硕¥168支付宝赞赏
2025-10-16xx豪¥101支付宝赞赏
2025-12-25三愿¥100微信赞赏
2025-10-15¥100微信赞赏
2025-08-13zhongjing¥100微信赞赏
2025-07-15粉兔¥100微信赞赏
2025-02-8Boom....¥100微信赞赏

🥈 银牌赞助者 (¥50-99)

💝 日期👤 赞助者💰 金额🏷️ 平台
2025-11-29Sven¥66微信赞赏
2025-06-26m udDy🐖¥88微信赞赏
2025-05-09犹豫,就会败北。¥88微信赞赏
2025-04-01¥88.88微信赞赏
2025-02-8邓伟¥88微信赞赏
2025-02-7dennis¥40Gitee赞赏
2025-11-5匿名用户¥66微信赞赏
2025-02-6小二¥62微信赞赏
2025-05-15孤鸿影¥56微信赞赏
2026-01-14赵赫¥50微信赞赏
2026-01-05Dumbness¥50微信赞赏

🥉 铜牌赞助者 (¥20-49)

💝 日期👤 赞助者💰 金额🏷️ 平台
2025-11-15云鹏¥20微信转账
2025-08-12*持¥20支付宝赞赏
2025-06-03洪流¥20微信赞赏
2025-05-27刘启成¥20微信赞赏
2025-05-20匿名赞助者¥20微信赞赏
<div align="center"> <br>

📝 温馨提示 该名单为手动更新,如果您已赞助但未在列表中,请联系我们: 🐛 GitHub Issue | 📧 邮箱: 2439646234@qq.com | 💬 微信: cy2439646234

<br> </div>

📄 开源许可

<div align="center"> <h3>⚖️ 许可证信息</h3> <p> <a href="https://app.fossa.com/projects/git%2Bgithub.com%2FHuLaSpark%2FHuLa?ref=badge_large"> <img src="https://app.fossa.com/api/projects/git%2Bgithub.com%2FHuLaSpark%2FHuLa.svg?type=large" alt="FOSSA Status" style="max-width: 100%; border-radius: 8px;"> </a> </p> <p><em>本项目遵循开源许可协议,详细信息请查看上方许可证报告</em></p> </div>
<div align="center"> <h3>🌟 感谢您的关注</h3> <p> <em>如果您觉得 HuLa 有价值,请给我们一个 ⭐ Star,这是对我们最大的鼓励!</em> </p> <p> <strong>让我们一起构建更好的即时通讯体验 🚀</strong> </p> </div>