感谢您对 ZeroLaunch-rs 的贡献!本文档将引导您如何参与项目的开发。
在开始开发之前,请确保您已安装以下工具:
- Rust: v1.90.0+ (推荐安装最新稳定版)
- Bun: v1.2.22+
- Just: (可选) 用于快速执行开发指令
git clone https://github.com/ghost-him/ZeroLaunch-rs.git
cd ZeroLaunch-rsbun install
# 可选安装,用于简化常用指令
cargo install just启动开发服务器进行实时开发和调试:
bun run tauri dev使用 xtask 自动化构建工具进行生产构建。
cd xtask
cargo run --bin xtask build-installer --arch x64cd xtask
cargo run --bin xtask build-installer --arch x64 --ai disabledcd xtask
cargo run --bin xtask build-allcd xtask
cargo run --bin xtask clean- 安装包:项目根目录下的
.msi文件 - 便携版:项目根目录下的
.zip文件 - 详细说明:请参考 xtask/README.md
了解程序的数据存储结构有助于调试和开发。
程序分为安装包版本与便携版两个版本,数据存储位置不同:
- 安装包版本:
C:\Users\[用户名]\AppData\Roaming\ZeroLaunch-rs\ - 便携版:软件所在的目录
本地数据目录/ # 安装包版本:C:\Users\[用户名]\AppData\Roaming\ZeroLaunch-rs\
# 便携版:软件所在目录
├── logs/ # 运行日志
├── icons/ # 程序图标缓存
├── ZeroLaunch_program_embeddings.cache # AI 语义向量缓存,用于加速程序初始化
├── ZeroLaunch_program_semantic_description.json # 程序功能语义描述文件,供 AI 模型检索调用
└── ZeroLaunch_local_config.json # 本地配置文件,存储相关数据以及远程目录路径
远程目录用于存放程序的详细运行配置,默认为当前的本地数据目录。通过远程存储可以实现两个机器间的数据同步。
远程目录/ # 默认与本地数据目录相同
├── background.png # 自定义背景图片
└── ZeroLaunch_remote_config.json # 远程配置文件,存储程序运行配置
如果您发现了 bug 或有改进建议,请在 GitHub Issues 中报告。提交 Issue 时,请尽量提供:
- 问题的详细描述(如果有图片,可将图片附带上)
- 复现步骤
- 系统环境信息(Windows 版本、Rust 版本等)
- 相关的日志输出(可在
C:\Users\[username]\AppData\Roaming\ZeroLaunch-rs\logs\目录下找到,或直接在设置页面中导出)
我们欢迎您的 Pull Request!请遵循以下步骤:
- Fork 本仓库并克隆到本地
- 基于
main分支创建您的功能分支 (git checkout -b feature/AmazingFeature) - 在更改完成后,格式化代码:
- 运行
just style - 若未安装
just,请执行cargo clippy --fix --allow-dirty; cargo fmt --all
- 运行
- 提交您的更改 (
git commit -m 'feat: Add some AmazingFeature') - 推送到您的 Fork 分支 (
git push origin feature/AmazingFeature) - 在 GitHub 上创建 Pull Request
请确保您的代码遵循项目现有的代码风格:
- Rust 代码:使用
just style完成代码的格式化 - TypeScript/Vue 代码:遵循现有的代码风格惯例
提交 PR 前,请确保:
- 代码能够成功编译(运行
cargo check) - 代码已格式化
- 所有现有功能仍然正常工作
- 新功能包含适当的测试(不强制)
本项目采用 GPLv3 许可证。参与贡献即表示您同意将您的贡献代码置于相同的许可证下。
本项目使用了以下优秀的开源库和资源:
- chinese-xinhua - 中文转拼音核心词典
- LaunchyQt - UWP 应用索引方案
- bootstrap - 程序图标
- icon-icons - 程序图标
- Follower-v2.0 - 全屏检测方案
本项目可选在本地使用 Google 的 EmbeddingGemma 模型,仅用于离线语义检索。
使用与再分发须遵守:
- 《Gemma 使用条款》https://ai.google.dev/gemma/terms
- 《禁止用途政策》https://ai.google.dev/gemma/prohibited_use_policy
如再分发该模型或其衍生物(非托管服务),需:
- 在您的协议中传递上述限制
- 向接收方提供 Gemma 条款副本(可用链接)
- 标注被修改的文件
- 随附名为 NOTICE 的文本文件,内容为:"Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms"
- GitHub 仓库: ghost-him/ZeroLaunch-rs
- 项目官网: zerolaunch.ghost-him.com
- 反馈问题: GitHub Issues
感谢您的每一份贡献!🙏