tnxbutno/sfc-gui
GitHub: tnxbutno/sfc-gui
基于 Qt 6 的跨平台桌面应用,为 SFC 二进制容器格式提供打包、解包、修复、信息查看与完整性校验的图形化操作界面。
Stars: 0 | Forks: 0
# SFC GUI
SFC 容器格式的桌面 GUI([sfc](https://github.com/tnxbutno/sfc))。
基于 Qt 6 Widgets 构建——在 macOS、Windows 和 Linux 上具有原生外观。
## 功能
- **打包** — 将文件或目录编码为一个或多个 `.sfc` 文件;设置作者、描述和其他元数据;可选纠删恢复块
- **解包** — 将单个文件或一组分片传输段解码还原为原始内容;显示块可用性网格
- **修复** — 从损坏或不完整的 `.sfc` 文件中恢复数据;显示缺失的块并写入所有能恢复的内容
- **信息** — 无需解码即可显示任何 `.sfc` 文件的元数据和结构
- **校验** — 对一批文件运行 BLAKE3 完整性检查,并获取逐个文件的通过/失败报告
所有编码/解码工作均在后台线程运行;UI 保持响应并显示进度条。
## 前置条件
| 工具 | 版本 |
|------|---------|
| Qt 6 | 6.6+(Widgets 模块) |
| C++23 编译器 | Apple Clang 15+、GCC 13+ 或 MSVC 2022 |
| CMake | 3.25+ |
| zstd, brotli, lz4 | 任何最新版本 |
| sfc 库 | 从 [sfc](https://github.com/tnxbutno/sfc) 构建 |
## 构建
### 1. 构建 sfc 库
将 [sfc](https://github.com/tnxbutno/sfc) 作为本仓库的同级目录克隆,然后:
```
cd ../sfc
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
```
如果您将其克隆到了其他位置,请在下方 GUI 的 cmake 步骤中传入 `-DSFC_ROOT=/path/to/sfc`。
### 2. 构建 GUI
**macOS**(Homebrew):
```
brew install qt zstd brotli lz4
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$(brew --prefix qt)"
cmake --build build
open build/sfc-gui.app
```
**Linux**(Ubuntu/Debian):
```
sudo apt-get install qt6-base-dev libzstd-dev libbrotli-dev liblz4-dev
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/sfc-gui
```
**Windows**(Qt 安装程序 + vcpkg):
```
vcpkg install zstd:x64-windows-static brotli:x64-windows-static lz4:x64-windows-static
cmake -S . -B build `
-DCMAKE_BUILD_TYPE=Release `
-DCMAKE_PREFIX_PATH="C:/Qt/6.8.x/msvc2022_64" `
-DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"
cmake --build build --config Release
```
## 测试
```
cmake --build build --target sfc_gui_tests
./build/sfc_gui_tests
```
测试涵盖 `SfcWorker`(编码/解码/校验/修复/分片信号连接)、`MetadataEditor`(获取/设置往返测试)和 `ChunkGridWidget`(无崩溃的边缘情况)。
## macOS:打开已下载的构建版本
CI 构建版本为临时签名,会被 Gatekeeper 拦截。如果应用程序即使通过右键点击 → 打开也无法启动,请在终端中移除隔离属性:
```
xattr -dr com.apple.quarantine sfc-gui.app
```
标签:Bash脚本, BLAKE3, Brotli, C++23, CMake, GUI工具, lz4, Qt 6, Qt Widgets, SFC格式, Zstandard, zstd, 二进制文件处理, 前端UI, 后台线程处理, 完整性校验, 归档工具, 打包工具, 数据压缩, 数据恢复, 数据编解码, 文件修复, 文件容器格式, 文件检验, 文件管理, 解包工具, 跨平台桌面应用