timelord 3.0.0

A Rust library to preserve file timestamps (mtime) between builds, even with fresh git checkouts
Documentation

timelord

Crates.io Documentation License: MIT OR Apache-2.0

A Rust library to preserve file timestamps (mtime) between builds, even with fresh git checkouts.

Usage

Timelord provides the sync function to preserve file timestamps between builds:

use timelord::sync;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    sync("path/to/source", "path/to/cache")?;
    Ok(())
}

The sync function takes two arguments:

  • source_dir: Directory containing files to preserve timestamps for
  • cache_dir: Persistent directory to store the timestamp database across builds

Timelord stores a database of file sizes and hashes, and restores old timestamps if file contents remain unchanged.

For CLI usage, see the timelord-cli crate.

Additional Configuration

To ensure Timelord works properly, especially in CI environments, it's important to use the -Zremap-cwd-prefix rustc flag. This flag helps maintain consistent paths across different build environments.

License

Licensed under either of

at your option.