Skip to content

Latest commit

 

History

History
185 lines (124 loc) · 5.69 KB

File metadata and controls

185 lines (124 loc) · 5.69 KB

🛠️ 开发者指南

感谢您对 ZeroLaunch-rs 的贡献!本文档将引导您如何参与项目的开发。

环境要求

在开始开发之前,请确保您已安装以下工具:

  • Rust: v1.90.0+ (推荐安装最新稳定版)
  • Bun: v1.2.22+
  • Just: (可选) 用于快速执行开发指令

构建步骤

克隆仓库

git clone https://github.com/ghost-him/ZeroLaunch-rs.git
cd ZeroLaunch-rs

安装依赖

bun install
# 可选安装,用于简化常用指令
cargo install just

开发模式

启动开发服务器进行实时开发和调试:

bun run tauri dev

生产构建

使用 xtask 自动化构建工具进行生产构建。

仅构建安装包(默认启用 AI),x64 版本

cd xtask
cargo run --bin xtask build-installer --arch x64

构建 Lite 版安装包(关闭 AI)

cd xtask
cargo run --bin xtask build-installer --arch x64 --ai disabled

构建所有版本(安装包 + 便携版,所有架构,默认同时含 / 不含 AI)

cd xtask
cargo run --bin xtask build-all

清理构建产物

cd 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)

我们欢迎您的 Pull Request!请遵循以下步骤:

  1. Fork 本仓库并克隆到本地
  2. 基于 main 分支创建您的功能分支 (git checkout -b feature/AmazingFeature)
  3. 在更改完成后,格式化代码:
    • 运行 just style
    • 若未安装 just,请执行 cargo clippy --fix --allow-dirty; cargo fmt --all
  4. 提交您的更改 (git commit -m 'feat: Add some AmazingFeature')
  5. 推送到您的 Fork 分支 (git push origin feature/AmazingFeature)
  6. 在 GitHub 上创建 Pull Request

代码风格

请确保您的代码遵循项目现有的代码风格:

  • Rust 代码:使用 just style 完成代码的格式化
  • TypeScript/Vue 代码:遵循现有的代码风格惯例

测试

提交 PR 前,请确保:

  • 代码能够成功编译(运行 cargo check
  • 代码已格式化
  • 所有现有功能仍然正常工作
  • 新功能包含适当的测试(不强制)

许可证

本项目采用 GPLv3 许可证。参与贡献即表示您同意将您的贡献代码置于相同的许可证下。

第三方依赖

本项目使用了以下优秀的开源库和资源:

EmbeddingGemma 第三方条款

本项目可选在本地使用 Google 的 EmbeddingGemma 模型,仅用于离线语义检索。

使用与再分发须遵守:

如再分发该模型或其衍生物(非托管服务),需:

  1. 在您的协议中传递上述限制
  2. 向接收方提供 Gemma 条款副本(可用链接)
  3. 标注被修改的文件
  4. 随附名为 NOTICE 的文本文件,内容为:"Gemma is provided under and subject to the Gemma Terms of Use found at ai.google.dev/gemma/terms"

资源与联系方式

感谢您的每一份贡献!🙏