bcmr 0.7.1 brings the post-0.7.0 transfer improvements to the stable release.
New capabilities
- Temporary SSH port, identity, configuration and jump-host overrides, applied consistently to transfer, completion, diagnostics, background jobs and deployment.
scp://URIs with endpoint ports, bracketed IPv6 and UTF-8 percent-encoded filenames.- Aggregate payload bandwidth limits across workers and destinations.
- Mixed local/remote sources and bounded client-mediated remote-to-remote transfers.
- A real SFTP v3 backend for subsystem-only accounts, with explicit backend selection and capability checks.
- Multi-host deployment, selected-path version checks, interactive sudo, per-host verification and failure summaries.
Fixes and consistency
- Expand source
*patterns locally and remotely; generated Zsh copy/move wrappers pass patterns to bcmr. - Create missing directory destinations ending in
/, consistently across local copies, uploads and downloads. - Align exclusions, symbolic links, directory metadata, overwrite confirmation, staging and move cleanup across transfer routes.
- Preserve source link objects even when a source spelling ends in directory separators.
- Preserve subsecond directory timestamps during recursive
copy -p. - Bind serve file reads, writes and directory creation to the session root; stage atomic uploads through the captured parent directory.
- Isolate serve dedup caches by root directory identity and validate private cached blocks before reuse.
- Keep help and shell recovery available with invalid configuration; improve layered configuration diagnostics and literal
--arguments. - Keep Homebrew shell wrappers on stable opt paths and direct managed installations to Homebrew upgrades.
- Reduce Windows async stack usage and improve path, link and attribute compatibility.
Upgrade notes
- Reinitialize shell integration or regenerate installed completion scripts to pick up connection options and Zsh pattern handling.
-Pcontinues to mean concurrency;--configselects bcmr configuration, while--ssh-configselects OpenSSH configuration.- Composite/SFTP/relay transfers currently process leaf entries in order. Existing SFTP destinations are not force-replaced; new regular-file publication requires
[email protected]. - Portable
-ppreserves ordinary permissions/timestamps within backend precision, not arbitrary ACL/xattr or source hardlink topology. Cross-host tree moves are copy-and-cleanup operations, not one atomic transaction. - Linux/macOS serve caches are isolated by root directory identity. Old unscoped cache entries are not reused. Other serve platforms, including FreeBSD and Windows, currently request all blocks; missing or unsafe cache storage disables this optional acceleration while ordinary transfer remains available.
Install or upgrade
brew update
brew upgrade Bengerthelorf/tap/bcmr
# Or: cargo install bcmr --version 0.7.1 --locked
Release archives for Linux, macOS, Windows and FreeBSD are accompanied by sha256sums.txt.
Validation
- 917 local Rust tests, 25 CLI regression suites, and 37 real localhost SSH/SFTP acceptance checks passed.
- Strict all-targets Clippy, formatting, installer/archive checks and
cargo publish --dry-runpassed.