Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

windows 10 supports unix domain sockets - add an option to use it instead of named-pipes for ipc:// #1698

Open
alzix opened this issue Nov 2, 2023 · 5 comments
Labels

Comments

@alzix
Copy link
Contributor

alzix commented Nov 2, 2023

we are experiencing issues with IPC sockets reliability on Windows. related issues #1175 and #1567
on macOS it works much more reliably. One of the differences between the two systems is that Windows uses named named-pipes for IPC, while UNIX domain sockets are used on macOS

Windows 10 supports UNIX domain sockets out of the box - https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
Add a compile/runtime option to use UNIX domain sockets on Windows for IPC

@gdamore
Copy link
Contributor

gdamore commented Nov 26, 2023

I'm going to hold on this for now -- but I think I might well do this. I'd like to update both legacy nanomsg and mangos to do this as well, because it is an interoperability problem.

One other idea is to add a new URL scheme and transport just for UNIX sockets. I am thinking about that too.

@gdamore
Copy link
Contributor

gdamore commented Nov 26, 2023

This will be post 1.6.0. But I do intend to do it.

@gdamore
Copy link
Contributor

gdamore commented Feb 26, 2024

So my plan of record is as follows:

  1. Add unix:// as a UNIX domain IPC URL. Will be available unconditionally when supported.
  2. Add winpipe:// as a new scheme that only supports Windows named pipes. Available on Windows and compatible with legacy IPC.
  3. Add a compile time option to select whether ipc:// is unix:// or winpipe:// - will default to winpipe:// for 1.x, but I think in NNG 2.0 will change the default to IPC because honestly named pipes are a pain in my arse and I want to kick them to the curb.

Mangos will probably grow the same scheme as well.

@louislau86
Copy link

louislau86 commented Jun 8, 2024

@gdamore Is there a chance to utilize shared memory for inter process communication on the local machine?

@gdamore
Copy link
Contributor

gdamore commented Jul 1, 2024

Shared memory will be a new transport entirely. I don't have any immediate plans for this ... its complicated to do if you want to do it in a zero copy fashion. (Its easy to do if you accept data copies...)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants