-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
No support for Unix socket types? #5389
Comments
Correct, these are not supported. Can you explain more about your use case? It may be possible to make them work using a custom dialer (https://pkg.go.dev/google.golang.org/grpc#WithContextDialer). |
I was just playing around with Unix sockets. I am planing to implement some services that will require to send/receive large amount of data. Taking into account the stream-oriented nature of the only supported socket type in gRPC, I had some concerns about possible issues with preserving message boundaries. It turned out that the current implementation relies on HTTP2 transport protocol, so there should be no worries. But, in my opinion, HTTP2 is a bit of overkill in the case of Unix domain sockets. It would make sense to rely on Unix SOCK_SEQPACKET socket type for some performance gains. I mean, we don't need multiplexing in the case of Unix domain socket: one client — one stream, and let the rest be handled by OS. |
This issue is labeled as requiring an update from the reporter, and no update has been received after 6 days. If no update is provided in the next 7 days, this issue will be automatically closed. |
What you're describing would be something that could be implemented using this proposal for custom transports: grpc/proposal#103 Unfortunately, it became deprioritized, and hasn't been worked on in some time. |
By default MariaDB server starts on Unix socket , not network socket, because of this SparrowCI build for alpine fails - https://ci.sparrowhub.io/report/1461 So Unix sockets support would be good |
Unix sockets are supported. |
I am a bit confused, but it looks like there is no support for socket types, the network type 'unix' is hard-coded here:
grpc-go/internal/resolver/unix/unix.go
Line 55 in e41f868
yet we can create a server listening on unixpacket and unixgram sockets. Any connection to such a server will be refused.
The text was updated successfully, but these errors were encountered: