• v0.102.0 88cb7a292b

    namshubsofenki released this 2026-09-13 11:14:08 +02:00 | 6 commits to main since this release

    First Linux x86_64 release of hyperindex, alongside the existing Windows build.

    What changed: hyperindex was previously Windows-only at the code level — winfs.rs, volume.rs and ui.rs called Win32 APIs (SetErrorMode, GetVolumeInformationW, console codepage/VT setup) unconditionally, with no #[cfg(windows)] gating anywhere. This release adds a real Unix side to each, following the split hyperfiler already used in its own winfs.rs:

    • Volume identity: on Linux, the stable per-filesystem key (Windows volume serial) is now the filesystem's own UUID, resolved via /proc/self/mountinfo + /dev/disk/by-uuid (no blkid shell-out). Falls back to a deterministic hash of the mount point when no UUID is resolvable (mirrors the existing UNC-path fallback on Windows).
    • Reparse-point detection during the walk becomes a symlink check on Unix; cloud-placeholder detection (OneDrive/Nextcloud Cloud Filter API attributes) has no Linux equivalent and correctly never fires there.
    • Console setup (UTF-8 codepage, VT processing) is a no-op on Unix — terminals there are UTF-8/ANSI-native already.
    • Error classification (FailureKind) gets its own errno-based mapping instead of reusing Win32 error codes.
    • Found and fixed one real (platform-independent) bug along the way: doubles.rs's parent_folder_of used std::path::Path::parent(), which only recognises '/' as a separator on Linux — so folder-level duplicate grouping silently broke apart every Windows-recorded path into its own single-file group whenever doubles ran on Linux. Fixed to split on either separator explicitly, matching a neighbouring function that already did.

    All 136 unit tests pass on Linux (x86_64-unknown-linux-gnu, built and tested on Linux Mint 22.3 / kernel 6.8). Verified with a live scan/dupes/volumes smoke test against a real ext4 filesystem.

    Assets: dynamically linked against glibc (works on any reasonably current x86_64 Linux distro); gzip-compressed, SHA256SUMS.txt included.

    Downloads