Radish alpha
h
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
Radicle Heartwood Protocol & Stack
Radicle
Git
node: Control via `uds_windows` not `winpipe`
Merged lorenz opened 2 months ago

Recent versions of Windows support Unix Domain Sockets natively, see https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/.

By using that feature instead of Windows named pipes, the difference for handling communication via the control socket comparing Unix-like systems and Windows becomes smaller:

  1. No special paths like \.\pipe\… have to be handled.
  2. Not two I/O mechanisms are abstracted (named pipe and UDS) but just one.
  3. winpipe relies on background threads while uds_windows does not.

Once the feature windows_unix_domain_sockets (which is tracked at https://github.com/rust-lang/rust/issues/150487) stabilizes, it will likely be possible to just drop the dependency uds_windows and use the implementation in std::os::windows::net directly.

lorenz opened with revision 1eb6299c on base 90cf37c4 +54 -101 2 months ago

Recent versions of Windows support Unix Domain Sockets natively, see https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/.

By using that feature instead of Windows named pipes, the difference for handling communication via the control socket comparing Unix-like systems and Windows becomes smaller:

  1. No special paths like \.\pipe\… have to be handled.
  2. Not two I/O mechanisms are abstracted (named pipe and UDS) but just one.
  3. winpipe relies on background threads while uds_windows does not.

Once the feature windows_unix_domain_sockets (which is tracked at https://github.com/rust-lang/rust/issues/150487) stabilizes, it will likely be possible to just drop the dependency uds_windows and use the implementation in std::os::windows::net directly.

fintohaps merged revision 1eb6299c at ebf7d876 2 months ago