Files
2026-07-13 13:11:28 +08:00

467 lines
30 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<p align="center">
<img width="350px" height="150px" src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/public/hula.png"/>
</p>
<p align="center">An instant messaging system built with Tauri, Vite 7, Vue 3, and TypeScript</p>
<!-- 🌟 Featured -->
<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="FeaturedHelloGitHub" 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 Top 100 Open Source Projects">
</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/en/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>
<!-- 🔗 Quick Links -->
<div align="center">
<h3>🔗 Quick Links</h3>
<p>
💻 <strong>Website:</strong><a href="https://hulaspark.com">HuLaSpark</a> |
📝 <strong>document</strong><a href="docs/project_guide.md">Configuration and Tutorials</a> |
☕️ <strong>Server:</strong><a href="https://github.com/HulaSpark/HuLa-Server">GitHub</a> / <a href="https://gitee.com/HulaSpark/HuLa-Server">Gitee</a> |
💬 <strong>WeChat:</strong><code>cy2439646234</code>
</p>
</div>
<p align="center">
<a href="README.md">中文</a> |
English |
<!-- 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>
## 🌐 Supported Platforms
| Platform | Supported Versions |
|----------|-------------------|
| Windows | Windows 10, Windows 11 |
| macOS | macOS 10.5+ Mac26 has supported |
| Linux | Ubuntu 22.0+ |
| iOS | iOS 9.0+ (iOS26 Real machine is supported. Tauri does not support Intel chips running on ios26 emulators) |
| Android | Android 12+ (SDK30+) |
| Web | ⚠️Not currently supported (custom removal required) |
## 📝 Project Introduction
HuLa is an instant messaging system built with Tauri, Vite 7, Vue 3, and TypeScript. It leverages Tauri's cross-platform capabilities and Vue 3's reactive design, combined with TypeScript's type safety features and Vite 7's fast build process, providing users with an efficient, secure, and user-friendly communication solution.
## 🛠️ Tech Stack
- **Tauri**: Provides a lightweight, high-performance desktop application container for this project, enabling us to develop cross-platform desktop applications using frontend technology stack. Tauri's design philosophy is to minimize resource consumption while ensuring security.
- **Vite 7**: Vite is a modern frontend build tool that leverages native ES module imports to provide a fast development server, while also offering powerful support for production environment packaging. Vite 7 is its latest version, bringing more optimizations and features.
- **Vue 3**: Vue 3 is a progressive JavaScript framework for building user interfaces. Its Composition API, better TypeScript integration, and mobile optimization make developing complex single-page applications simpler and more efficient.
- **TypeScript**: TypeScript is a superset of JavaScript that adds a type system on top of JavaScript. This allows us to catch more errors during development and provides better editor support.
## 🖼️ Project Preview
<div align="center">
<h3>🎨 Interface Showcase</h3>
</div>
<!-- Main Interface -->
<div align="center">
<h4>PC interface display, there are other functions not in the introduction screenshot, please download your own experience</h4>
</div>
<div align="center">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img.png" alt="img-main" width="280" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_1.png" alt="img-conversation" width="280" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_2.png" alt="img-contacts" width="280" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_3.png" alt="img-settings" width="280" style="border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); margin: 8px;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_4.png" alt="Message Features" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_5.png" alt="Theme Switching" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_6.png" alt="Emojis" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_7.png" alt="Group Management" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_8.png" alt="Personal Settings" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_9.png" alt="File Transfer" width="280" style="border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.1); margin: 6px;">
</div>
<div align="center">
<h4>Mobile interface display</h4>
</div>
<div align="center">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/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>
## ✨ Features
<div align="center">
<h3>🎯 Development Progress Overview</h3>
</div>
### 🔐 User Authentication System
| Feature | Description | Status |
|---------|-------------|--------|
| 🔑 | Username/Password Login | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📱 | QR Code Scan Login | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 💻 | Multi-device Login Management | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
### 💬 Message Communication
| Feature | Description | Status |
|---------|-------------|--------|
| 👤 | One-on-one Private Chat | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 👥 | Group Chat | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| ↩️ | Message Recall | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📢 | @Mention & Reply Features | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 👁️ | Message Read Status | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 😊 | Emoji Features | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🖱️ | Message Right-click Menu | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🔗 | Link Preview Cards | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 👍 | Message Like Interaction | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📔 | Chat History Management | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
### 🤝 Social Management
| Feature | Description | Status |
|---------|-------------|--------|
| | Add & Remove Friends | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🔍 | Friend Search | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🏢 | Group Creation & Management | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🟢 | Friend Online Status | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🎖️ | Friend Badge System | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🚫 | Block & Do Not Disturb | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📤 | Message Forwarding | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📋 | Group Announcements | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🏷️ | Nickname & Remark Management | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📍 | Get and Send Location | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🔥 | Scan code to log in and join the group | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
### 🎨 User Experience
| Feature | Description | Status |
|---------|-------------|--------|
| 🖼️ | Modern UI Design | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🌙 | Dark & Light Theme | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🎭 | Skin Theme Switching | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
### 🛠️ System Features
| Feature | Description | Status |
|---------|-------------|--------|
| 🪟 | Multi-window Management | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🔔 | System Tray Notifications | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📷 | Image Viewer | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| ✂️ | Screenshot Feature | ![In Progress](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🎙️ | Voice Calling | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🎥 | Video Calling | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| ⌨️ | Global Shortcut Control | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📺 | Dedicated Media Viewer | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📁 | File Upload (Qiniu Cloud) | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🔄 | Auto-update System | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
### 🌐 Cross-platform Support
| Feature | Description | Status |
|---------|-------------|--------|
| 💻 | Windows/macOS/Linux | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 📱 | iOS/Android Adaptation | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
### 🤖 AI Integration
| Feature | Description | Status |
|---------|-------------|--------|
| 🧠 | AI Chat Assistant | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
| 🔌 | Multi-platform AI Support | ![Completed](https://img.shields.io/badge/✅-Completed-008080?style=flat&labelColor=e6f7f7&color=008080) |
## App Upgrade Sponsor
<a href="https://www.toolsetlink.com">
<img height="54" alt="UpgradeLink" src="https://github.com/user-attachments/assets/6b84fb0f-3f1d-44b5-9932-2298bc999d8d" />
</a>
## 👏 Thanks to all Contributors!
<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]
> Special thanks to [@dennis9486](https://github.com/dennis9486) for delivering the initial screenshot feature implementation located at `src/components/common/Screenshot.vue`, which laid the groundwork for the desktop capture experience.
## 📥 Installation & Running
```bash
# Clone the project
git clone https://gitee.com/HulaSpark/HuLa.git
# or
git clone https://github.com/HulaSpark/HuLa.git
# Enter project directory
cd HuLa
# Install dependencies
pnpm install
# Run development server
pnpm run tauri:dev
# Build for production
pnpm run tauri:build
```
## ⚠️ Important Notes (macOS Users)
Downloading installation packages from the web may show a damaged package prompt, possibly encountering certificate issues due to macOS security mechanisms. Please follow these steps to resolve:
#### 1. Open "System Settings" - "Security & Privacy", check as shown: Allow apps downloaded from "Anywhere" to run:
<div align="center">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/img_10.png" alt="img_10.png" />
</div>
#### 2. If errors persist, execute the following commands in Terminal:
```bash
## Execute before installation
sudo xattr -rd com.apple.quarantine path/to/your/downloaded/package
```
```bash
## If already installed, execute the following
sudo xattr -r -d com.apple.quarantine /Applications/ApplicationName.app
```
## 📋 Commit Guidelines
Execute **pnpm run commit** to invoke _git commit_ interaction, complete information input and selection according to prompts.
## ⚖️ Disclaimer
1. This project is provided as an open-source project. Developers do not provide any form of explicit or implicit warranties for the functionality, security, or applicability of the software within the scope permitted by law.
2. Users clearly understand and agree that the risk of using this software is entirely borne by the user. The software is provided on an "as is" and "as available" basis. Developers do not provide any form of warranty, whether explicit or implicit, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement.
3. Under no circumstances shall developers or their suppliers be liable for any direct, indirect, incidental, special, punitive, or consequential damages, including but not limited to profit loss, business interruption, personal information leakage, or other commercial damages or losses arising from the use of this software.
4. All users conducting secondary development on this project must commit to using this software for legal purposes and are responsible for complying with local laws and regulations.
5. Developers have the right to modify the software's functions or features at any time, as well as any part of this disclaimer, and these modifications may be reflected in the form of software updates.
**The final interpretation of this disclaimer belongs to the developers**
## 🎁 Support the Project
<h3>💝 Sponsor Support</h3>
<p><em>If you find HuLa helpful, welcome to sponsor and support us. Your support is our motivation to keep moving forward!</em></p>
<div>
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/zs.jpg" height="240" alt="WeChat Code">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/zfb.png" height="240" alt="Alipay Code">
</div>
<br>
---
## 💬 Join Community
<div align="center">
<h3>🤝 HuLa Community Discussion Group</h3>
<p><em>Join developers and users for discussions, get the latest news and technical support</em></p>
<p><em>Use the HuLa mobile app to scan the Issues group QR code below and share feedback anytime.</em></p>
<div style="display: flex; justify-content: center; gap: 20px; flex-wrap: wrap;">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/wx.png" width="260" height="340" alt="WeChat Group QR Code">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/qq.jpg" width="260" height="340" alt="QQ Group QR Code">
<img src="https://raw.gitcode.com/HuLaSpark/HuLa/files/master/preview/HuLa-QR.png" width="315" height="315" alt="HuLa Issues Group QR Code">
</div>
</div>
## 🙏 Thanks to Sponsors
<div align="center">
<h3>💎 Contributors Hall of Fame</h3>
<p><em>Thanks to the following friends for their generous support of the HuLa project!</em></p>
</div>
### 💎 Diamond Sponsors (¥1000+)
| 💝 Date | 👤 Sponsor | 💰 Amount | 🏷️ Platform |
|---------|----------|--------|---------|
| 2025-09-12 | **翟可** | `¥1688` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
### 🏆 Gold Sponsors ($15+)
| 💝 Date | 👤 Sponsor | 💰 Amount | 🏷️ Platform |
|---------|----------|--------|---------|
| 2025-12-13 | **MPiDAOLab** | `¥500` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-11-12 | **星** | `¥500` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-09-03 | **烛火** | `¥500` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-09-05 | **Orion** | `¥200` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-10-24 | **唐勇(伏威)** | `¥400` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-08-26 | **唐勇** | `¥200` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-04-25 | **上官俊斌** | `¥200` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-05-27 | **临安居士** | `¥188` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-04-20 | **姜兴(Simon)** | `¥188` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-02-17 | **禾硕** | `¥168` | ![Alipay](https://img.shields.io/badge/Alipay-1677FF?style=flat&logo=alipay&logoColor=white) |
| 2025-10-16 | **xx豪** | `¥101` | ![Alipay](https://img.shields.io/badge/Alipay-1677FF?style=flat&logo=alipay&logoColor=white) |
| 2025-12-25 | **三愿** | `¥100` | ![WeChat](https://img.shields.io/badge/微信赞赏-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-10-15 | **兵** | `¥100` | ![WeChat](https://img.shields.io/badge/微信赞赏-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-08-13 | **zhongjing** | `¥100` | ![WeChat](https://img.shields.io/badge/微信赞赏-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-07-15 | **粉兔** | `¥100` | ![WeChat](https://img.shields.io/badge/微信赞赏-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-02-8 | **Boom....** | `¥100` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
### 🥈 Silver Sponsors ($8-14)
| 💝 Date | 👤 Sponsor | 💰 Amount | 🏷️ Platform |
|---------|----------|--------|---------|
| 2025-11-29 | **Sven** | `¥66` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-06-26 | **m udDy🐖** | `¥88` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-05-09 | **犹豫,就会败北。** | `¥88` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-04-01 | **墨** | `¥88.88` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-02-8 | **邓伟** | `¥88` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-02-7 | **dennis** | `¥40` | ![Gitee](https://img.shields.io/badge/Gitee-C71D23?style=flat&logo=gitee&logoColor=white) |
| 2025-11-5 | **匿名用户** | `¥66` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-02-6 | **小二** | `¥62` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-05-15 | **孤鸿影** | `¥56` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2026-01-14 | **赵赫** | `¥50` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2026-01-05 | **Dumbness** | `¥50` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
### 🥉 Bronze Sponsors ($3-7)
| 💝 Date | 👤 Sponsor | 💰 Amount | 🏷️ Platform |
|---------|----------|--------|---------|
| 2025-08-12 | **云鹏** | `¥20` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-08-12 | ***持** | `¥20` | ![Alipay](https://img.shields.io/badge/支付宝赞赏-1677FF?style=flat&logo=alipay&logoColor=white) |
| 2025-06-03 | **洪流** | `¥20` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-05-27 | **刘启成** | `¥20` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
| 2025-05-20 | **匿名赞助者** | `¥20` | ![WeChat](https://img.shields.io/badge/WeChat-07C160?style=flat&logo=wechat&logoColor=white) |
<div align="center">
<br>
> 📝 **Friendly Reminder**
> This list is manually updated. If you have sponsored but are not listed, please contact us:
> 🐛 [GitHub Issue](https://github.com/HuLaSpark/HuLa/issues) | 📧 Email: `2439646234@qq.com` | 💬 WeChat: `cy2439646234`
<br>
</div>
---
## 📄 Open Source License
<div align="center">
<h3>⚖️ License Information</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>This project follows open source license agreements. For detailed information, please check the license report above</em></p>
</div>
---
<div align="center">
<h3>🌟 Thank You for Your Attention</h3>
<p>
<em>If you find HuLa valuable, please give us a ⭐ Star, which is the greatest encouragement for us!</em>
</p>
<p>
<strong>Let's build a better instant messaging experience together 🚀</strong>
</p>
</div>