go-grpc-http1 icon indicating copy to clipboard operation
go-grpc-http1 copied to clipboard

Support building for WASM

Open flimzy opened this issue 1 year ago • 3 comments

At present, this package fails to build for WASM:

../../../../go/pkg/mod/golang.stackrox.io/[email protected]/client/ws_proxy.go:235:3: unknown field HTTPHeader in struct literal of type websocket.DialOptions
../../../../go/pkg/mod/golang.stackrox.io/[email protected]/client/ws_proxy.go:236:3: unknown field HTTPClient in struct literal of type websocket.DialOptions
../../../../go/pkg/mod/golang.stackrox.io/[email protected]/client/ws_proxy.go:239:3: unknown field CompressionMode in struct literal of type websocket.DialOptions

This is due to the fact that github.com/coder/websocket exposes different DialOptions structs for WASM than for other targets. There is an issue open that would address at least some of this, but it's old and hasn't gotten much attention.

Unless/until github.com/coder/websocket addresses this issue, is it reasonable for go-grpc-http1 to put the DialOptions use behind a build tag, so that it can compile for web assembly?

I'm happy to submit a pull request if it's likely to be accepted.

flimzy avatar Aug 18 '24 18:08 flimzy

Hi, thank you for your interest in this library, and apologies for the delay. I'm not very familiar with WASM, honestly, so I'm not familiar with the limitations which are in place when using it.

Looking at the DialOptions for WASM, it looks like it lacks HTTPHeader, HTTPClient, and CompressionMode, which we use. I'm not opposed to controlling the DialOptions behind a build tag, but I'm wondering if it will work correctly without setting those options, especially the headers, which helps identify this as gRPC.

What did you have in mind as replacement DialOptions?

RTann avatar Oct 10 '24 23:10 RTann

I think the simplest solution would be just to use the same DialOptions for all build tags, and just document that certain of them are ignored for wasm builds.

flimzy avatar Oct 14 '24 14:10 flimzy

@flimzy your pull request would be very welcome here. If you find time to submit it, Ross or I can give it a look.

I apologize for our delayed reaction. Your initial message arrived in a vacation season and I am sure that our reaction time will be much better now.

vikin91 avatar Oct 25 '24 09:10 vikin91