• heimdall_3.0 ab1023a729

    Heimdall 3.0 Stable

    jakeISAC released this 2026-07-02 01:51:01 +02:00 | 0 commits to main since this release

    Bifrost v3.0 -- Stable Release

    The first stable release of Bifrost, marking the completion of all major planned features.

    New Features

    • Temporal Scheduler (TS): A brand-new scheduler powered by linear regression for time predictions and the LPT (Longest Processing Time) algorithm for task scheduling. This gives Bifrost significantly smarter, data-driven control over copy job sequencing.
    • Redesigned menu: The CLI menu has been redesigned for clarity and ease of use, now with section headers that group related commands together — making it much easier to navigate.

    Optimizations

    • ~10% reduction in memory usage: Internal memory handling improvements bring a further ~10% decrease in memory consumption on top of the tikv-jemallocator gains introduced in the previous release.
    • Updated allocator features: tikv-jemallocator now ships with profiling and background_threads enabled by default, unlocking better runtime profiling support and background memory reclamation.
    • Dependency upgrades: All packages have been updated to their latest available versions, with minor codebase adjustments where API changes required it.

    Code Quality

    • Various functions and variables have been renamed for improved readability and easier debugging.
    • New --show-error-count flag to show the amount of errors encountered, if any, while unwrapping copy futures.

    PS. As always, new flags were introduced — please regenerate your shell completions and remember to remove the old ones from your .bashrc.


    Checksums

    Verify the integrity of your download before running.

    Note: Please rename file such as bifrost_arm and bifrost_arm.exe to bifrost or bifrost.exe before continuing.

    bifrost (Linux)

    5a28d1baae503d3c7635bac855a51620fbeaa40b000926ae3591c92724996651
    

    bifrost_arm (Linux ARM)

    8720a7ab6aa7f3fdf55de072406c7f1b489523a478bca6ef2e8330d315fd9d5c
    

    bifrost.exe (Windows)

    e592c43ef02d387198081d90de9ce295fda0ee76a86e5f7887ccebdbc4ef8217
    

    bifrost_arm.exe (Windows ARM)

    469f41a1b2aa1107dd577fe08857712fa3001e1b49030fa3607fa96155a20b86
    

    Linux: sha256sum bifrost

    Windows: Get-FileHash bifrost.exe -Algorithm SHA256

    Downloads
  • bifrost_1.2.16_pre_release d639d7e6a0

    Bifrost 1.2.16 Pre-release

    jakeISAC released this 2026-05-28 13:56:45 +02:00 | 79 commits to main since this release

    Bifrost Pre-Release

    This is a pre-release of Bifrost packed with new features!

    New Features

    • Preserve mode: On Unix systems, allows users to preserve ownership of directories.
    • New allocator: The global allocator for Unix systems is now tikv_jemallocator, which offers significantly better allocation efficiency thanks to its optimized size-class system (smaller buckets mean less wasted memory). Basic testing shows roughly a 10% improvement in memory usage over the previous version.
    • Multithreaded path traversal: A new traversal module built with Rayon deploys parallel walkers to discover files up to 5x faster than the sequential implementation.
    • Analysis mode: Analyse the source directory and print basic discovered statistics, including traversal time. Future versions may suggest scheduler usage.

    Optimizations

    • Removed an unnecessary conversion to Vec<> for sorting by switching to BTreeMap (effectively a sorted HashMap).
    • Added a macro for constructing file data. Since it's evaluated at compile time, there's no performance cost—and it greatly improves readability while enabling cleaner file operations.
    • Objects inside the FileData struct are no longer cloned on access. Existing getters and setters now return Option<&T> for better performance.

    New architectures

    • Linux on ARM
    • Windows on ARM

    PS. As always, new flags were introduced, so please regenerate your completions—and don't forget to remove the old ones from your .bashrc.


    Checksums

    Verify the integrity of your download before running.

    bifrost (Linux)

    e5c7ebceca9da3fbb4194e87be928e336339627d50e8dc271c43efd9d8245eea
    

    bifrost_arm (Linux ARM)

    17aab84884ef994a101429f5ec9c60dc764d69ea6428b2bf6d9583e3591907cd
    

    bifrost.exe (Windows)

    a2128c01da5bfdad9698154489de662a8a2e7f93b19e24e3ca566d4a7008cb4e
    

    bifrost_arm.exe (Windows ARM)

    2ed27a7ebb6f652a9b3ce7b6fb6a4c6a33a8ab0b48deb62f969ab79604e4c68f
    

    Linux: sha256sum bifrost

    Windows: Get-FileHash bifrost.exe -Algorithm SHA256

    Downloads
  • bifrost_1.2.12 9861efff1b

    jakeISAC released this 2026-05-18 01:31:49 +02:00 | 109 commits to main since this release

    Bifrost new release! -- Performance & Architecture Improvements

    1. Scheduler now powered by Rayon — Schedulers have been migrated from Tokio to the Rayon framework. Since schedulers are computation-heavy and perform no I/O, using Tokio's lightweight thread pool introduced unnecessary overhead and synchronization costs. Rayon is purpose-built for this kind of work solving a lot of problems and showing some nice performance increase.

    2. Capped concurrency for multithreaded copying — Multithreaded copy operations can now be configured with a maximum group limit, giving control over core utilization and reducing memory pressure by limiting the number of tasks queued in Tokio's task queue at any given time.

    3. Path pre-processor design finalized — The path pre-processor architecture is now locked in. More to come here soon --> Cross-platform path matching :).

    4. K-means upgraded to K-means++ initialization — The K-means implementation has been rewritten to use K-means++ initialization, improving clustering quality and reducing the number of iterations needed to converge.

    General Improvements

    • Reduced resource re-allocation across the board
    • Runtime optimizations through improved iterator usage
    • Code formatting and readability improvements

    Note: If you generated --completions for the program please re-generate them as this release introduces some new parameters. PS. Remember to remove the old ones from .bashrc :).


    Checksums

    Verify the integrity of your download before running.

    bifrost (Linux)

    ee800ff0a7186819128845938ff624b1ca5beead55355882f231edaaaf610543
    

    bifrost.exe (Windows)

    2eb8d7e072d1a1d3d71ed2dd7a6e630072400c59e3b3fbc9bc9e951fb75f84a0
    

    Linux: sha256sum bifrost

    Windows: Get-FileHash bifrost.exe -Algorithm SHA256

    Downloads
  • bifrost_1.2.9 de05679ed3

    Bifrost 1.2.9 Stable

    jakeISAC released this 2026-04-04 18:27:31 +02:00 | 120 commits to main since this release

    So, this release brings some new features and improvements. The primary focus of this release is the new archive mode! This flag allows the user to synchronize two directories, so just copy the new and modified files.

    For now there is a small drawback, but the fix is in the pipeline, the names of both folders need to be the same: /any/dir/app : /any/dir2/app.

    In other things:

    • directory pre-processor got an update in form of a major bug-fix when processing multiple go backs (..) in a row.
    • most of the code was revised and optimized in more of a functional way.

    Note: Please regenerate completions to include the new --archive-mode flag.


    Checksums

    Verify the integrity of your download before running.

    bifrost (Linux)

    c2ced331c73b70bb78a670b755ee7788534cd806de8bdc847de034810a824a56
    

    bifrost.exe (Windows)

    12b7f272de935008567bb2205f8f1e7ab82f9f49678d9f9d4dfdb5d376455605
    

    Linux: sha256sum bifrost

    Windows: Get-FileHash bifrost.exe -Algorithm SHA256

    Downloads
  • bifrost_1.2.6 aed67d1a98

    Bifrost 1.2.6 Stable

    jakeISAC released this 2026-03-30 00:14:47 +02:00 | 159 commits to main since this release

    This is the first release of the program under the new name! It includes some optimizations and improvements, but nothing major.


    Checksums

    Verify the integrity of your download before running.

    bifrost (Linux)

    10eb21d88ba404daca6a8bd45d84a3319118cfee663b1b50f8bd0cbeb1ff9688
    

    bifrost.exe (Windows)

    7a463d6a684558dbce0723743a193cfea858c22472e532f264857e6dc683f809
    

    Linux: sha256sum bifrost

    Windows: Get-FileHash bifrost.exe -Algorithm SHA256

    Downloads
  • heimdall_1.2.5 e725d0bba9

    jakeISAC released this 2026-03-22 01:24:59 +01:00 | 184 commits to main since this release

    This release is minor, but with some improvements nonetheless. Most notably, the system now bypasses scheduling and defaults to sequential copying for small directories, avoiding unnecessary overhead when synchronization isn’t worthwhile. This bypass behaviour is configurable via a program parameter. A bug in extract_end_paths that caused a removal of valid directories, that were considered empty, due to not having any subdirectories, was fixed by introducing a reference count of files that point to that directory. This should also resolve the ghost files issue in the non-empty strategy.

    You could actually say that this a first, fully working release, which behaves as intended with all the possible optimizations :).


    Checksums

    Verify the integrity of your download before running.

    heimdall (Linux)

    593bbb4ce5f9df25ce39fbcb4e5519ee332f0ae48d2cfcc2d55bd478005160d0
    

    heimdall.exe (Windows)

    3d1c12b5f9368b8476fd5c0bd398966fcd2f7c22424d81471ef2a6799ed122ba
    

    Linux: sha256sum heimdall

    Windows: Get-FileHash heimdall.exe -Algorithm SHA256

    Downloads
  • heimdall_1.2.2 2ba0275c49

    jakeISAC released this 2026-03-21 01:58:30 +01:00 | 202 commits to main since this release

    The concurrency system has been completely overhauled, again (I know...I know), for better resilience and performance, with proper group chunking and dynamic CFS group sizing based on your CPU count. I also squashed a nasty K-means clustering bug that was causing the scheduler to spit out empty schedules due to unnecessary centroid reinitialization. Logging has got a lot of improvements too — it's much more detailed now and can be saved to a file for later analysis. Additionally, a new path preprocessor module handles absolute path resolution for more robust validity checking. And last but not least, Heimdall now natively builds for x86-64-v3, so you can take full advantage of modern CPU instruction sets.


    Checksums

    Verify the integrity of your download before running.

    heimdall (Linux)

    e97f4fb277067926783adb8115647b341d1b639ef296bfd4bb5641286125e6ac
    

    heimdall.exe (Windows)

    ed413166b601769bd296b3c140cebca4997067cfe095a6c79ad1b5989db4949f
    

    Linux: sha256sum heimdall

    Windows: Get-FileHash heimdall.exe -Algorithm SHA256

    Downloads
  • heimdall_1.1.5 e8a704ff0a

    jakeISAC released this 2026-03-17 13:57:34 +01:00 | 233 commits to main since this release

    This major release features a full revamp of concurrency handling, with the program now fully parallelized (to the best of my ability 😅) for optimal performance. Alongside significant bug fixes, complexity has been reduced by embracing functional programming principles, and memory usage is optimized by minimizing unnecessary allocations. Also, the code clean-up enhances readability and maintainability, resulting in a more efficient and robust codebase, hopefully.

    Note: This version of the program still requires absolute paths to both source and destination. I have not got around to fixing the parser yet, but next release for sure :).

    Downloads
  • heimdall_1.1 920778f100

    Heimdall 1.1 Pre-release

    jakeISAC released this 2026-03-15 14:52:31 +01:00 | 246 commits to main since this release

    I’ve removed the blocking semaphores to reduce contention and replaced tokio::spawn with tokio::task::spawn_blocking for CPU-bound operations, which helps prevent thread starvation and improves performance. The CFS scheduler and copying process have also been further optimized. The scheduler is now more stable and efficient, and I’m planning more customization options for the next update.

    Downloads
  • cfs_stable_0.1.0 41695b9353

    CFS 0.1.0 Stable

    jakeISAC released this 2025-12-07 16:21:11 +01:00 | 274 commits to main since this release

    Improved stability with added safety of Semaphore for issuing tasks while scheduling. Added future crate for better handling of Futures generated by Tokio, which allows for concurrent waiting for Futures with a safety of internal buffering which limits the max number of Futures awaited concurrently. Also, this release contains code clean-up and logic improvements, which should limit the number of unnecessary allocations and checks.

    Downloads