Skip to content

Add --8-bit-output flag forwarding#2239

Merged
oferchen merged 1 commit into
masterfrom
implement-rsync-3.4.1-parity-in-rust
Nov 24, 2025
Merged

Add --8-bit-output flag forwarding#2239
oferchen merged 1 commit into
masterfrom
implement-rsync-3.4.1-parity-in-rust

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • add the --8-bit-output CLI flag and document it in help text and supported options
  • parse and propagate the eight-bit output toggle through workflow and remote fallback handling
  • extend tests to cover parsing and fallback forwarding of the new flag

Testing

  • cargo test --all-features --workspace

Codex Task

@oferchen oferchen merged commit e30855c into master Nov 24, 2025
4 of 5 checks passed
@oferchen oferchen deleted the implement-rsync-3.4.1-parity-in-rust branch November 24, 2025 23:00
oferchen added a commit that referenced this pull request May 1, 2026
oferchen added a commit that referenced this pull request May 15, 2026
….2 parity) (#4100)

* feat: wire --compress-threads=N through to zstd ZSTD_c_nbWorkers

Plumb the value parsed in #4095 into the actual zstd encoder via
`ZSTD_c_nbWorkers`, matching upstream `token.c:701` so a non-zero
`--compress-threads=N` engages real worker threads instead of being
silently dropped.

- `compress::zstd::CountingZstdEncoder` gains `new_with_workers` /
  `with_sink_workers` constructors and a `SUPPORTS_MULTITHREAD` const.
- `engine::ActiveCompressor::new_with_workers` and
  `transfer::CompressedWriter::with_workers` thread the value end to
  end. `LocalCopyOptions` gains `compression_threads` and is populated
  from `ClientConfig::compression_threads` in `apply_compression`.
- Multithreaded zstd lives behind a `zstdmt` Cargo feature on the
  `compress` crate (off by default to avoid a forced C build cost).
  Requesting workers without the feature returns `Unsupported` so
  callers can fall back to single-threaded compression instead of
  silently discarding the user's request.

upstream: options.c:89 do_compression_threads, token.c:701.

Refs #2239, #2217.

* style: apply rustfmt to zstd worker wiring

* fix(compress): avoid Result::unwrap_err since encoder lacks Debug

* fix(engine): wire compression_threads through options builder + Debug-safe unwrap

* fix(engine): gate unused ActiveCompressor::new behind #[cfg(test)]

* fix(transfer): avoid expect_err on CompressedWriter lacking Debug
oferchen added a commit that referenced this pull request May 18, 2026
….2 parity) (#4100)

* feat: wire --compress-threads=N through to zstd ZSTD_c_nbWorkers

Plumb the value parsed in #4095 into the actual zstd encoder via
`ZSTD_c_nbWorkers`, matching upstream `token.c:701` so a non-zero
`--compress-threads=N` engages real worker threads instead of being
silently dropped.

- `compress::zstd::CountingZstdEncoder` gains `new_with_workers` /
  `with_sink_workers` constructors and a `SUPPORTS_MULTITHREAD` const.
- `engine::ActiveCompressor::new_with_workers` and
  `transfer::CompressedWriter::with_workers` thread the value end to
  end. `LocalCopyOptions` gains `compression_threads` and is populated
  from `ClientConfig::compression_threads` in `apply_compression`.
- Multithreaded zstd lives behind a `zstdmt` Cargo feature on the
  `compress` crate (off by default to avoid a forced C build cost).
  Requesting workers without the feature returns `Unsupported` so
  callers can fall back to single-threaded compression instead of
  silently discarding the user's request.

upstream: options.c:89 do_compression_threads, token.c:701.

Refs #2239, #2217.

* style: apply rustfmt to zstd worker wiring

* fix(compress): avoid Result::unwrap_err since encoder lacks Debug

* fix(engine): wire compression_threads through options builder + Debug-safe unwrap

* fix(engine): gate unused ActiveCompressor::new behind #[cfg(test)]

* fix(transfer): avoid expect_err on CompressedWriter lacking Debug
oferchen added a commit that referenced this pull request May 18, 2026
….2 parity) (#4100)

* feat: wire --compress-threads=N through to zstd ZSTD_c_nbWorkers

Plumb the value parsed in #4095 into the actual zstd encoder via
`ZSTD_c_nbWorkers`, matching upstream `token.c:701` so a non-zero
`--compress-threads=N` engages real worker threads instead of being
silently dropped.

- `compress::zstd::CountingZstdEncoder` gains `new_with_workers` /
  `with_sink_workers` constructors and a `SUPPORTS_MULTITHREAD` const.
- `engine::ActiveCompressor::new_with_workers` and
  `transfer::CompressedWriter::with_workers` thread the value end to
  end. `LocalCopyOptions` gains `compression_threads` and is populated
  from `ClientConfig::compression_threads` in `apply_compression`.
- Multithreaded zstd lives behind a `zstdmt` Cargo feature on the
  `compress` crate (off by default to avoid a forced C build cost).
  Requesting workers without the feature returns `Unsupported` so
  callers can fall back to single-threaded compression instead of
  silently discarding the user's request.

upstream: options.c:89 do_compression_threads, token.c:701.

Refs #2239, #2217.

* style: apply rustfmt to zstd worker wiring

* fix(compress): avoid Result::unwrap_err since encoder lacks Debug

* fix(engine): wire compression_threads through options builder + Debug-safe unwrap

* fix(engine): gate unused ActiveCompressor::new behind #[cfg(test)]

* fix(transfer): avoid expect_err on CompressedWriter lacking Debug
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant