-
-
Notifications
You must be signed in to change notification settings - Fork 26
Support pathname Unix-domain streams on Windows #795
Copy link
Copy link
Open
Labels
cross-platformIssues related to making Wave work seamlessly across multiple operating systems.Issues related to making Wave work seamlessly across multiple operating systems.discussionIssues that require a technical or community discussion.Issues that require a technical or community discussion.enhancementA request for a new feature or improvement.A request for a new feature or improvement.help wantedThe issue requires extra attention or help from others.The issue requires extra attention or help from others.os supportA request to add support for a new operating system.A request to add support for a new operating system.
Description
Activity
Metadata
Metadata
Assignees
Labels
cross-platformIssues related to making Wave work seamlessly across multiple operating systems.Issues related to making Wave work seamlessly across multiple operating systems.discussionIssues that require a technical or community discussion.Issues that require a technical or community discussion.enhancementA request for a new feature or improvement.A request for a new feature or improvement.help wantedThe issue requires extra attention or help from others.The issue requires extra attention or help from others.os supportA request to add support for a new operating system.A request to add support for a new operating system.
Motivation
The Windows local-address provider always returns -95, and the Windows branches of
_unix_socketandunix_removedo the same. Consequently, portable applications usingstd::net::unixcannot use pathname local stream sockets on Windows amd64 or ARM64.This is an intentional missing capability in the current source, not a reproduced regression. Microsoft exposes AF_UNIX for Win32 interprocess communication. A focused provider would let applications use the existing stream API for local IPC without substituting a network listener.
Source audit at
4c3372157d8889fa8bbef0a7ccd2e72aab1c5c6c: std/sys/windows/local_addr.wave, std/sys/local_addr.wave, std/net/unix.wave, std/sys/windows/socket.wave.Scope
After agreeing on the Windows contract, support pathname AF_UNIX/SOCK_STREAM through Winsock and the existing UnixListener/UnixStream operations. Define address encoding, path limits, filesystem entry cleanup and behavior on Windows versions without the capability. Preserve native errors and close resources on failed bind/connect/listen.
Named pipes, Linux abstract addresses, descriptor passing and local datagrams are separate capabilities. Keep unsupported operations explicit, and preserve Linux/macOS/FreeBSD behavior. No libc adapter is required. Related Windows provider tracker: #385.
Difficulty: hard.
Completion criteria
Design decision needed: Confirm the minimum Windows version, pathname encoding/limits, cleanup ownership and unsupported-capability behavior before implementing the provider.
Please mention @LunaStev to discuss the design before starting implementation.