Skip to content

Refactor module list client into modular structure#1655

Merged
oferchen merged 1 commit into
masterfrom
prepare-for-production-release-and-optimization
Oct 30, 2025
Merged

Refactor module list client into modular structure#1655
oferchen merged 1 commit into
masterfrom
prepare-for-production-release-and-optimization

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • split the client module list implementation into focused submodules for authentication, connection handling, parsing, and result rendering
  • expose the same public API from the new module tree while routing listing logic through the new helpers
  • clean up imports and shared helpers so timeout handling and proxy support stay centralized

Testing

  • cargo test -p rsync-core --no-run

https://chatgpt.com/codex/tasks/task_e_690338fb81cc832394e66912900d222c

@oferchen oferchen merged commit 5df0bed into master Oct 30, 2025
@oferchen oferchen deleted the prepare-for-production-release-and-optimization branch October 30, 2025 10:31
oferchen added a commit that referenced this pull request May 1, 2026
…nsport (#1938) (#3525)

Formalizes the SSH stdio transport audit at docs/audits/ssh-socketpair-vs-pipes.md
under tracker #1938, consolidating prior #1686 working notes (PR #3438), the
io_uring boundary documented for #1858 (PR #3418), and the stderr socketpair
shipped under #1689 (PR #3383). Restructures the document into the formal
seven-section layout (summary, upstream reference, current implementation,
trade-offs, decision matrix, recommendation, implementation notes) plus
findings and references.

Recommends keeping anonymous pipes for the SSH wire and not pursuing the
socketpair migration: splice(2) and vmsplice(2) require a pipe end, the
zero-copy plan in #1860 depends on that, and the unified-FD argument is
subsumed by the async-transport refactor (#2068, #1655). Closes #1687
(prototype socketpair wire) as do-not-implement and #1902 (verify wire
claim against rsync_io source) as verified.

Citations were re-checked against worktree source: builder.rs:300-301
(Stdio::piped on the wire), aux_channel.rs:263-285 (UnixStream::pair for
stderr, Unix only), connection.rs:30-39 (SshConnection struct),
mod.rs:57-75 (io_uring boundary). Upstream evidence verified against
target/interop/upstream-src/rsync-3.4.1/: pipe.c:48-97 (piped_child),
util1.c:74-96 (fd_pair), main.c:504-663 (do_cmd dispatch),
clientserver.c:116-148 (daemon TCP wire), socket.c:736-846 (sock_exec
test escape).
oferchen added a commit that referenced this pull request May 5, 2026
…nsport (#1938) (#3525)

Formalizes the SSH stdio transport audit at docs/audits/ssh-socketpair-vs-pipes.md
under tracker #1938, consolidating prior #1686 working notes (PR #3438), the
io_uring boundary documented for #1858 (PR #3418), and the stderr socketpair
shipped under #1689 (PR #3383). Restructures the document into the formal
seven-section layout (summary, upstream reference, current implementation,
trade-offs, decision matrix, recommendation, implementation notes) plus
findings and references.

Recommends keeping anonymous pipes for the SSH wire and not pursuing the
socketpair migration: splice(2) and vmsplice(2) require a pipe end, the
zero-copy plan in #1860 depends on that, and the unified-FD argument is
subsumed by the async-transport refactor (#2068, #1655). Closes #1687
(prototype socketpair wire) as do-not-implement and #1902 (verify wire
claim against rsync_io source) as verified.

Citations were re-checked against worktree source: builder.rs:300-301
(Stdio::piped on the wire), aux_channel.rs:263-285 (UnixStream::pair for
stderr, Unix only), connection.rs:30-39 (SshConnection struct),
mod.rs:57-75 (io_uring boundary). Upstream evidence verified against
target/interop/upstream-src/rsync-3.4.1/: pipe.c:48-97 (piped_child),
util1.c:74-96 (fd_pair), main.c:504-663 (do_cmd dispatch),
clientserver.c:116-148 (daemon TCP wire), socket.c:736-846 (sock_exec
test escape).
oferchen added a commit that referenced this pull request May 5, 2026
Design note for the near-term macOS-optimized fallback that pairs
F_NOCACHE on the destination fd with writev for the buffered-write
path. Composes with the longer-term kqueue backend (#1385) and fills
in the WritevAsyncWriter branch named in the AsyncFileWriter audit
(#1655).
oferchen added a commit that referenced this pull request May 7, 2026
Tight-scope design note for #1385: surveys current macOS I/O paths in
fast_io, scopes the kqueue surface to vnode/socket/timer events,
identifies disk-commit and daemon socket I/O as the candidate sites,
contrasts kqueue's notification-only role with io_uring's submission
plus completion model, and recommends kqueue (not dispatch_io) as the
macOS implementation of the AsyncFileWriter trait from #1655.
oferchen added a commit that referenced this pull request May 18, 2026
Design note for the near-term macOS-optimized fallback that pairs
F_NOCACHE on the destination fd with writev for the buffered-write
path. Composes with the longer-term kqueue backend (#1385) and fills
in the WritevAsyncWriter branch named in the AsyncFileWriter audit
(#1655).
oferchen added a commit that referenced this pull request May 18, 2026
Tight-scope design note for #1385: surveys current macOS I/O paths in
fast_io, scopes the kqueue surface to vnode/socket/timer events,
identifies disk-commit and daemon socket I/O as the candidate sites,
contrasts kqueue's notification-only role with io_uring's submission
plus completion model, and recommends kqueue (not dispatch_io) as the
macOS implementation of the AsyncFileWriter trait from #1655.
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