API服务的Rust实现,使用Actix-web框架。
src/ ├── lib.rs # 库根模块定义 ├── main.rs # 应用入口点,配置Actix服务器 ├── models.rs # 数据模型和API响应类型定义 ├── handlers.rs # HTTP请求处理器实现 ├── task_manager.rs # 后台任务队列管理系统 └── utils.rs # 工具函数(Flatpak命令执行、系统信息检测等)
GET /api/tasks - 获取所有任务状态POST /api/tasks/clear - 清除已完成的任务POST /api/tasks/cancel/{task_id} - 取消指定任务POST /api/flatpak/install - 安装应用POST /api/flatpak/uninstall - 卸载应用POST /api/flatpak/update - 更新应用GET /api/flatpak/list - 列出已安装的应用GET /api/flatpak/info - 获取应用信息POST /api/flatpak/run - 运行应用GET /api/flatpak/search - 搜索应用POST /api/flatpak/remote/add - 添加远程仓库POST /api/flatpak/remote/remove - 删除远程仓库GET /api/flatpak/remote/list - 列出远程仓库GET /api/version - 获取版本和系统信息GET /health - 健康检查# 下载 AMD64 版本 (Intel/AMD 处理器)
wget https://cnb.cool/FlatpakCN/Manager-Service/-/releases/latest/download/FlatpakCN-Manager-Service-latest-linux-amd64
# 下载 ARM64 版本 (ARM 处理器)
wget https://cnb.cool/FlatpakCN/Manager-Service/-/releases/latest/download/FlatpakCN-Manager-Service-latest-linux-arm64
# 验证文件完整性
wget https://cnb.cool/FlatpakCN/Manager-Service/-/releases/latest/download/sha256sums.txt
sha256sum -c sha256sums.txt
# 运行服务
chmod +x FlatpakCN-Manager-Service-latest-linux-*
./FlatpakCN-Manager-Service-latest-linux-*
# 自动安装并配置为系统服务
sudo ./install.sh
# 1. 安装 Rust (如果尚未安装)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
# 2. 安装系统依赖
# Ubuntu/Debian:
apt install build-essential pkg-config libssl-dev flatpak
# 3. 编译项目
cargo build --release
# 4. 运行服务
./target/release/FlatpakCN-Manager-Service
# 安装交叉编译目标
rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu
# 安装交叉编译工具
apt install gcc-aarch64-linux-gnu
# 编译 AMD64 版本
cargo build --release --target x86_64-unknown-linux-gnu
# 编译 ARM64 版本
export CC=aarch64-linux-gnu-gcc
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
cargo build --release --target aarch64-unknown-linux-gnu
./FlatpakCN-Manager-Service
# 使用安装脚本自动配置
sudo ./install.sh
# 或手动配置
sudo cp FlatpakCN-Manager-Service /opt/.FlatpakCN/
sudo systemctl enable flatpak-localserver
sudo systemctl start flatpak-localserver
服务默认监听 http://0.0.0.0:5000
项目配置了完整的 CI/CD 流水线:
# 使用提供的构建脚本
./build-local.sh
详细构建指南请参考 BUILD_GUIDE.md
GET /api/tasks - 获取所有任务状态POST /api/tasks/clear - 清除已完成的任务POST /api/tasks/cancel/{task_id} - 取消指定任务POST /api/flatpak/install - 安装应用POST /api/flatpak/uninstall - 卸载应用POST /api/flatpak/update - 更新应用GET /api/flatpak/list - 列出已安装的应用GET /api/flatpak/info - 获取应用信息POST /api/flatpak/run - 运行应用GET /api/flatpak/search - 搜索应用POST /api/flatpak/remote/add - 添加远程仓库POST /api/flatpak/remote/remove - 删除远程仓库GET /api/flatpak/remote/list - 列出远程仓库GET /api/version - 获取版本和系统信息GET /health - 健康检查# 健康检查
curl http://localhost:5000/health
# 获取版本信息
curl http://localhost:5000/api/version
# 列出已安装应用
curl http://localhost:5000/api/flatpak/list
# 安装应用
curl -X POST http://localhost:5000/api/flatpak/install \
-H "Content-Type: application/json" \
-d '{"app_id": "org.mozilla.firefox"}'
# 搜索应用
curl http://localhost:5000/api/flatpak/search?query=firefox
4.12+ - 高性能 Web 框架1.35+ - 异步运行时1.0+ - 序列化/反序列化1.6+ - UUID 生成0.4+ - 日期时间处理1.70+ - Rust 编译器src/ ├── lib.rs # 库根模块定义 ├── main.rs # 应用入口点,配置Actix服务器 ├── models.rs # 数据模型和API响应类型定义 ├── handlers.rs # HTTP请求处理器实现 ├── task_manager.rs # 后台任务队列管理系统 └── utils.rs # 工具函数(Flatpak命令执行、系统信息检测等) docs/ ├── BUILD_GUIDE.md # 详细构建指南 ├── API_EXAMPLES.md # API 使用示例 └── .cnb.yml # CI/CD 构建配置
定义了所有的数据结构:
TaskStatus - 任务状态枚举Task - 任务对象TaskResult - 任务执行结果实现了任务队列系统:
start_worker)实现了所有HTTP路由处理器:
提供工具函数:
RUST_LOG - 日志级别 (info, debug, warn, error)HOST - 监听地址 (默认: 0.0.0.0)PORT - 监听端口 (默认: 5000)支持通过环境变量或配置文件进行配置,详见配置文档。
# 运行所有测试
cargo test
# 运行特定测试
cargo test -- test_name
# 显示测试输出
cargo test -- --nocapture
# 安装 nightly 工具链
rustup install nightly
rustup component add bench --toolchain nightly
# 运行基准测试
cargo +nightly bench
由 FlatpakCN 团队开发和维护 ❤️