<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>
🌐 支持平台
| 平台 | 支持版本 |
|---|
| Windows | Windows 10, Windows 11 |
| macOS | macOS 10.5+ Mac26已支持 |
| Linux | Ubuntu 22.0+ |
| iOS | iOS 9.0+ (iOS26 真机已支持, Tauri不支持Intel芯片在ios26模拟器上运行) |
| Android | Android 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 交互,根据提示完成信息的输入和选择
⚖️ 免责声明
- 本项目是作为一款开源项目提供的,开发者在法律允许的范围内不对软件的功能性、安全性或适用性提供任何形式的明示或暗示的保证
- 用户明确理解并同意,使用本软件的风险完全由用户自己承担,软件以"现状"和"现有"基础提供。开发者不提供任何形式的担保,无论是明示还是暗示的,包括但不限于适销性、特定用途的适用性和非侵权的担保
- 在任何情况下,开发者或其供应商都不对任何直接的、间接的、偶然的、特殊的、惩罚性的或后果性的损害承担责任,包括但不限于使用本软件产生的利润损失、业务中断、个人信息泄露或其他商业损害或损失
- 所有在本项目上进行二次开发的用户,都需承诺将本软件用于合法目的,并自行负责遵守当地的法律和法规
- 开发者有权在任何时间修改软件的功能或特性,以及本免责声明的任何部分,并且这些修改可能会以软件更新的形式体现
本免责声明的最终解释权归开发者所有
🎁 支持项目
<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-13 | M(PiDAOLab) | ¥500 |  |
| 2025-11-12 | 星 | ¥500 |  |
| 2025-09-03 | 烛火 | ¥500 |  |
| 2025-09-05 | Orion | ¥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-16 | xx豪 | ¥101 |  |
| 2025-12-25 | 三愿 | ¥100 |  |
| 2025-10-15 | 兵 | ¥100 |  |
| 2025-08-13 | zhongjing | ¥100 |  |
| 2025-07-15 | 粉兔 | ¥100 |  |
| 2025-02-8 | Boom.... | ¥100 |  |
🥈 银牌赞助者 (¥50-99)
| 💝 日期 | 👤 赞助者 | 💰 金额 | 🏷️ 平台 |
|---|
| 2025-11-29 | Sven | ¥66 |  |
| 2025-06-26 | m udDy🐖 | ¥88 |  |
| 2025-05-09 | 犹豫,就会败北。 | ¥88 |  |
| 2025-04-01 | 墨 | ¥88.88 |  |
| 2025-02-8 | 邓伟 | ¥88 |  |
| 2025-02-7 | dennis | ¥40 |  |
| 2025-11-5 | 匿名用户 | ¥66 |  |
| 2025-02-6 | 小二 | ¥62 |  |
| 2025-05-15 | 孤鸿影 | ¥56 |  |
| 2026-01-14 | 赵赫 | ¥50 |  |
| 2026-01-05 | Dumbness | ¥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>