Crate hoard

source ·
Expand description

A CLI program for managing files across multiple devices.

You can think of hoard as a dotfiles management tool, though its intended use extends beyond that. hoard can be used for backing up and restoring any kind of file from/to any location on the filesystem. In fact, the original purpose behind writing it was to synchronize save files for games that don’t support cloud saves.


The following terms have special meanings when talking about hoard.

  • Hoard: A collection at least one Pile.
  • Pile: A single file or directory in a Hoard.
  • Environment: A combination of conditions that can be used to determine where to find files in a Pile.



  • Types that validate (check) Hoard configurations
  • Module for handling checksums.
  • A Combinator provides a newtype to parse a two-dimensional list of items as a collection of AND-ed and OR-ed elements. Every item in the outer list is OR-ed, while every item in an inner list is AND-ed. That is, for
  • See Command.
  • See Config.
  • Functions to determine special folders for Hoard to work with on different platforms.
  • Expand environment variables inside of a path.
  • Provides filters for determining whether a path should be backed up or not.
  • This module contains processed versions of builder Hoards. See documentation for builder Hoards for more details.
  • Types for working with files that are managed by Hoard.
  • Defines the default logging behavior for Hoard, using tracing.
  • Newtypes used to enforce invariants throughout this library.
  • Contains wrapper types for PathBuf to help ensure correct logic.


  • The default file stem of the configuration file (i.e. without file extension).
  • The name of the directory containing the backed up hoards.