feat: split ironrdp-client into a reusable library + ironrdp-viewer binary#1309
Conversation
|
Quick notes while PR A is still draft.
Looks good from my perspective. The library + facade split is the structurally clean shape for an embeddable RDP engine, and reading the diff confirms the split is honest: winit, clap, inquire, propertyset, rdpfile, and cfg are all out of the library's dep graph, tokio is narrowed from |
|
Copilot Rebase on top of master. Also, use a bounded mpsc channel with backpressure. Either wait for important messages, or drop irrelevant ones. Ideally, do not drop unless absolutely necessary. |
2732d16 to
da34f7f
Compare
Rebased on master (resolved conflict in Switched the output event channel from unbounded to bounded ( |
…b, copy old README to viewer
|
Copilot Finally, run |
|
Greg Lamberson (@glamberson) I removed the unbounded mpsc channel in favor of a bounded one. However, we’re not dropping anything, instead we introduce backpressure by |
|
Benoît Cortier (@CBenoit) Thanks for the direct address; appreciated. Bounded + backpressure is a solid resolution on the immediate concern, and merging the PR keeps the #1289 reshape moving. On the drop-oldest invitation: agreed it requires more care than a straightforward swap. The "latest snapshot properly reflects correct state" warning is the load-bearing constraint, particularly for framebuffer region updates which are stateful, not snapshot-style. A correct shape probably needs per-variant Filing as deferred-future-work on our side; tracking in our internal backlog. We will come back with a design issue rather than a code PR once we have a shape worth proposing, and after measuring real-traffic baseline against the current bounded + backpressure model to confirm there is a tail-latency benefit worth the implementation cost. No timeline commitment. |
|
Greg Lamberson (@glamberson) The general idea makes perfect sense to me. Thank you.
Fully agreed. Let us know if you find out that it’s worth implementing, and looking forward to the proposal if that is the case! |
ClipboardTypeinironrdp-clientlibrary toEnable,Disable,Stub(remove platform-specific variants)ClipboardTypeinironrdp-viewerto match:Enable,Disable,Stub(removeDefaultand platform-specific variants)ClipboardTypein viewer'smain.rsandconfig.rsironrdp-client/README.mdtoironrdp-viewer/README.mdironrdp-client/README.md(fix staleUnboundedSenderreference)ironrdp-testsuite-extraparse_config_fromhelper and use it in testscargo fmt