snapdir-cli 1.9.0

snapdir CLI implementation: the library behind the `snapdir` binary (which ships in the `snapdir` crate).
Documentation
```
$ snapdir sync --help
Copy a snapshot (its manifest + objects) directly between two stores, streaming through memory — no local staging

Usage: snapdir sync [OPTIONS] --from <STORE> --to <STORE>

Options:
  -q, --quiet
          Suppress stderr banners and the live progress line

      --store <URI>
          Store URI: `protocol://location/path`
          
          [env: SNAPDIR_STORE=]

      --catalog <NAME>
          Catalog adapter to record this snapshot's location in
          
          [env: SNAPDIR_CATALOG=]

      --color <WHEN>
          When to colorize progress output: auto, always, or never

          Possible values:
          - auto:   Color when attached to a TTY and `NO_COLOR` is unset (default)
          - always: Always emit color
          - never:  Never emit color
          
          [default: auto]

      --no-progress
          Disable the live progress line (transfers still run)
          
          [env: SNAPDIR_NO_PROGRESS=]

      --objects-store <URI>
          Shared object-pool store URI: when set, content OBJECTS route to this pool's `.objects/` while MANIFESTS route to `--store`'s `.manifests/`
          
          [env: SNAPDIR_OBJECTS_STORE=]

      --cache-dir <DIR>
          Directory where the object cache is stored
          
          [env: SNAPDIR_CACHE_DIR=]

      --verbose
          Enable verbose output. Honored by the transfer commands (push/fetch/pull/checkout/stage/sync emit an effective-config banner and CACHED/SAVED notices) and verify-cache (purge notices); inert elsewhere

      --id <ID>
          Snapshot ID to operate on

  -j, --jobs <N>
          Max concurrent object transfers (0/auto = number of CPUs, capped)
          
          [env: SNAPDIR_JOBS=]

      --limit-rate <RATE>
          Limit total transfer bandwidth, e.g. 10M, 512K, 1G (wget-style; aggregate across all transfers)
          
          [env: SNAPDIR_LIMIT_RATE=]

      --adaptive[=<FRACTION>]
          Adaptively tune transfer concurrency/bandwidth toward a fraction (default 0.8) of measured CPU/network capacity; backs off under contention. Opt-in; default is full speed.
          
          Presence (with or without a value) opts in; the optional value is the politeness fraction in `(0.0, 1.0]`.
          
          [env: SNAPDIR_ADAPTIVE=]

      --max-jobs <N>
          Adaptive concurrency ceiling (only meaningful with `--adaptive`). When unset, defaults to the auto concurrency; clamped to a sane upper bound
          
          [env: SNAPDIR_MAX_JOBS=]

      --max-retries <N>
          Total retry attempts per network request, including the first (default 5)

      --retry-base-ms <MS>
          Base backoff delay in milliseconds for request retries (default 250)

      --retry-max-ms <MS>
          Maximum backoff delay in milliseconds for request retries (default 30000)

      --max-requests <N>
          Cap request rate (req/s); 0/unset uses the per-backend default

      --linked
          Use symlinks instead of copies

      --force
          Force an action to run

      --keep
          Keep the staging directory

      --dryrun
          Run without making any changes

      --from <STORE>
          Source store URI: `protocol://location/path`
          
          [env: SNAPDIR_STORE=]

      --to <STORE>
          Destination store URI: `protocol://location/path`

      --from-objects <URI>
          Explicit SOURCE object pool URI (split source): objects are read from here while manifests come from `--from`. Absent => `--from` is a plain colocated store. Distinct from the global `--objects-store`

      --to-objects <URI>
          Explicit DESTINATION object pool URI (split dest): objects are written here while manifests go to `--to`. Absent => `--to` is a plain colocated store. Distinct from the global `--objects-store`

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

```