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, 后台线程处理, 完整性校验, 归档工具, 打包工具, 数据压缩, 数据恢复, 数据编解码, 文件修复, 文件容器格式, 文件检验, 文件管理, 解包工具, 跨平台桌面应用